四川少扫搡BBw搡BBBB,国产黄色视频在线免费观看,国产羞羞无码视频在线观看免,欧美亚洲日韩二区中文字幕的,亚洲91无码精品一区在线播放

機器人系統
程序員的福音,AI可以自動修復bug了!
2024-04-17

  北京大學、微軟(ruan)亞(ya)洲研究(jiu)院(yuan)(yuan)和中國電子(zi)科技大學就一(yi)同嘗試著讓AI找bug。微軟(ruan)亞(ya)洲研究(jiu)院(yuan)(yuan)的(de)Lily Sun正(zheng)(zheng)在(zai)微軟(ruan)官(guan)方博客上引見稱,他們開(kai)辟的(de)正(zheng)(zheng)確狀況體系(xi)(Accurate Condition System, ACS),能正(zheng)(zheng)在(zai)人類(lei)不加干(gan)涉的(de)情況下主動修復軟(ruan)件體系(xi)中的(de)Bug。

  他們關于ACS的論文Precise Condition Synthesis for Program Repair頒發正在天下軟件工程大(da)會ICSE 2017上(shang)。

  ACS會主動修復什么樣的(de)bug呢?Lily Sun舉了個例(li)子:

  int lcm=Math.abs(mulAndCheck(a/gdc(a,b), b));

  return lcm;

  這(zhe)是(shi)(shi)Apache Math中的(de)一段代碼,用來盤算兩個(ge)數(shu)(shu)的(de)最小公倍(bei)數(shu)(shu),而且(qie)引入了Math.abs來確保返(fan)回的(de)值(zhi)是(shi)(shi)正(zheng)數(shu)(shu)。可是(shi)(shi),這(zhe)個(ge)法式(shi)有缺點,有時候仍是(shi)(shi)會返(fan)回負(fu)值(zhi)。

  我們能夠(gou)創立(li)一個測試來找到個中的毛病。測試的輸入是(shi)a=Integer.MIN_VALUE、b=1,預期的輸出(chu)是(shi)throw ArithmeticException。

  把這個(ge)法(fa)式(shi)和相應的(de)測試輸入到ACS中(zhong),ACS會主動生成第2、3行的(de)途徑,修復法(fa)式(shi)缺點:

  int lcm=Math.abs(mulAndCheck(a/gdc(a,b), b));

程序員的福音,AI可以自動修復bug了!

  + if (lcm == Integer.MIN_VALUE) {

  + throw new ArithmeticException();

  + }

  return lcm;

  讓算(suan)法本人(ren)改bug這件事(shi),由2009年(nian)最先就有研討,弗吉尼亞大學(xue)計算(suan)機系的Westley Weimer、新(xin)墨西哥(ge)大學(xue)的Stephanie Forrest和卡耐基梅隆大學(xue)的Claire Le Goues,就一起開發了Genprog。

  而ACS,正(zheng)在(zai)前人(ren)研討的基(ji)礎上大(da)幅提升(sheng)了準確度(du)。正(zheng)在(zai)Defects4J基(ji)準上的測試成果表現,ACS生成的23個(ge)(ge)補釘中(zhong),有18個(ge)(ge)是精(jing)確的,準確度(du)近(jin)80%。

  ACS準確度(du)的提(ti)拔關(guan)鍵得(de)益于(yu)有更多的信息泉(quan)源(yuan),特別是網(wang)上的大批(pi)代(dai)碼。取以(yi)往的方式相(xiang)比(bi),ACS有以(yi)下三(san)種新的信息泉(quan)源(yuan):

  一(yi)是用局(ju)部性標準信息對補釘中(zhong)的變量開展排序;

  二是用自然(ran)語言闡(chan)發手(shou)藝來闡(chan)發Javadoc,然(ran)后用Javadoc中的信息來過濾不(bu)正確的補(bu)釘;

  三是經過對(dui)網上的(de)開源步(bu)伐(fa)開展(zhan)統計(ji)分析,發明對(dui)變量開展(zhan)操縱(zong)的(de)前提(ti)幾率,進而生(sheng)成精(jing)確(que)的(de)補釘。