五月婷婷欧美视频_少女频道在线观看高清_欧美日韩视频一区二区三区_7777精品伊久久久大香线蕉语言

首頁 > 機器人資訊 > 程序員的福音,AI可以自動修復bug了!

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

日期:2019-02-25   人氣:  來源:互聯網
簡介:程序員的福音,AI可以自動修復bug了! 人工智能完全學會自己編程,可能說起來還有一種科幻感,但AI幫程序員找bug這件事,已經達到了不錯的水平。 北京大學、微軟亞洲研究院和中國電子科技大學就一起嘗試著讓AI找bug。微軟亞洲研究院的LilySun在微軟官方博……

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

人工智能完全學會自己編程,可能說起來還有一種科幻感,但AI幫程序員找bug這件事,已經達到了不錯的水平。

北京大學、微軟亞洲研究院和中國電子科技大學就一起嘗試著讓AI找bug。微軟亞洲研究院的LilySun在微軟官方博客上介紹稱,他們開發的精確狀態系統(AccurateConditionSystem,ACS),工業機器人維修,能在人類不加干預的情況下自動修復軟件系統中的Bug。

他們關于ACS的論文PreciseConditionSynthesisforProgramRepair發表在世界軟件工程大會ICSE2017上。

ACS會自動修復什么樣的bug呢?LilySun舉了個例子:

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

returnlcm;

這是ApacheMath中的一段代碼,用來計算兩個數的最小公倍數,并且引入了Math.abs來確保返回的值是正數。但是,這個程序有缺陷,有時候還是會返回負值。

我們可以創建一個測試來找到其中的錯誤。測試的輸入是a=Integer.MIN_VALUE、b=1,預期的輸出是throwArithmeticException。

把這個程序和相應的測試輸入到ACS中,ACS會自動生成第2、3行的路徑,修復程序缺陷:

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

+if(lcm==Integer.MIN_VALUE){

+thrownewArithmeticException();

+}

returnlcm;

讓算法自己改bug這件事,從2009年開始就有研究,弗吉尼亞大學計算機系的WestleyWeimer、新墨西哥大學的StephanieForrest和卡耐基梅隆大學的ClaireLeGoues,庫卡機器人,就一起開發了Genprog。

而ACS,m.twshmhelmet.com,在前人研究的基礎上大幅提升了準確率。在Defects4J基準上的測試結果顯示,ACS生成的23個補丁中,有18個是正確的,準確率近80%。

ACS準確率的提升主要得益于有更多的信息來源,特別是網上的大量代碼。與以往的方法相比,ACS有以下三種新的信息來源:

一是用局部性原則信息對補丁中的變量進行排序;

二是用自然語言分析技術來分析Javadoc,然后用Javadoc中的信息來過濾不正確的補丁;

三是通過對網上的開源程序進行統計分析,發現對變量進行操作的條件概率,進而生成正確的補丁。

免責聲明:本網部分文章和信息來源于互聯網,本網轉載出于傳遞更多信息和學習之目的。如轉載稿涉及版權等問題,請立即聯系網站所有人,我們會予以更改或刪除相關文章,保證您的權利。
主站蜘蛛池模板: 怀安县| 铁岭县| 克什克腾旗| 呼和浩特市| 信丰县| 武乡县| 荥经县| 永新县| 曲靖市| 内黄县| 邢台县| 济源市| 西乌珠穆沁旗| 武宣县| 响水县| 房产| 阿克苏市| 丹棱县| 莎车县| 务川| 全州县| 昌乐县| 东方市| 西平县| 四川省| 灵璧县| 北辰区| 崇文区| 江门市| 萝北县| 定兴县| 晋州市| 石景山区| 高陵县| 宁陕县| 潜江市| 凤凰县| 沂水县| 瓦房店市| 德安县| 呈贡县|