日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

程序员的福音,AI可以自动修复bug了!

發布時間:2025/5/22 ChatGpt 156 豆豆
生活随笔 收集整理的這篇文章主要介紹了 程序员的福音,AI可以自动修复bug了! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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


?

?

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

?

他們關于 ACS 的論文 Precise Condition Synthesis for Program Repair 發表在世界軟件工程大會 ICSE 2017 上。

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

?

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

?

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

?

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

?

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

?

int lcm=Math.abs (mulAndCheck (a/gdc (a,b), b));
+ if (lcm == Integer.MIN_VALUE) {
+ throw new ArithmeticException ();
+ }
return lcm;

?

讓算法自己改 bug 這件事,從 2009 年開始就有研究,弗吉尼亞大學計算機系的 Westley Weimer、新墨西哥大學的 Stephanie Forrest 和卡耐基梅隆大學的 Claire Le Goues,就一起開發了?Genprog。

?

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

?

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

?

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

?

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

?

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

?

轉載于:https://www.cnblogs.com/gbin1/p/7410651.html

總結

以上是生活随笔為你收集整理的程序员的福音,AI可以自动修复bug了!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。