分享好友 厨具导购网站首页 频道列表
程序员的福音,ai可以自动修复bug了!
2025-07-24 07:32    5071    中华厨具网

人工智能完全学会自己编程,可能说起来还有一种科幻感,但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中的信息来过滤不正确的补丁;

三是通过对网上的开源程序进行统计分析,发现对变量进行操作的条件概率,进而生成正确的补丁。

转载:中国机器人网(原始来源:评论:0)

以上是网络信息转载,信息真实性自行斟酌。

版权/免责声明:
一、本文图片及内容来自网络,不代表本站的观点和立场,如涉及各类版权问题请联系及时删除。
二、凡注明稿件来源的内容均为转载稿或由企业用户注册发布,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性。
三、转载本站原创文章请注明来源:中华厨具网

免责声明:

本站所有页面所展现的企业/商品/服务内容、商标、费用、流程、详情等信息内容均由免费注册用户自行发布或由企业经营者自行提供,可能存在所发布的信息并未获得企业所有人授权、或信息不准确、不完整的情况;本网站仅为免费注册用户提供信息发布渠道,虽严格审核把关,但无法完全排除差错或疏漏,因此,本网站不对其发布信息的真实性、准确性和合法性负责。 本网站郑重声明:对网站展现内容(信息的真实性、准确性、合法性)不承担任何法律责任。

温馨提醒:中华厨具网提醒您部分企业可能不开放加盟/投资开店,请您在加盟/投资前直接与该企业核实、确认,并以企业最终确认的为准。对于您从本网站或本网站的任何有关服务所获得的资讯、内容或广告,以及您接受或信赖任何信息所产生之风险,本网站不承担任何责任,您应自行审核风险并谨防受骗。

中华厨具网对任何使用或提供本网站信息的商业活动及其风险不承担任何责任。

中华厨具网存在海量企业及店铺入驻,本网站虽严格审核把关,但无法完全排除差错或疏漏。如您发现页面有任何违法/侵权、错误信息或任何其他问题,请立即向中华厨具网举报并提供有效线索,我们将根据提供举报证据的材料及时处理或移除侵权或违法信息。