麻省理工学院学生的软件包会自动纠正程序的操作

图片

在有关编程语言的开发和实现的会议上,来自麻省理工学院(MIT)的计算机专家团队介绍了具有惊人功能的系统根据他们的说法,该软件包自动发现程序中的错误,并进行纠正,将适合于其他程序功能的部件替换为它们的位置。同时,系统不需要了解要进行操作纠正的程序的源代码-它需要一个可执行文件。

熟练的程序员将其程序命名为CodePhage(代码噬菌体)。开发人员解释说,他们的系统“分析程序的执行情况,并描述其执行的安全检查的类型”。此后,即使是用其他编程语言编写的,噬菌体也可以从其他施主程序中进行相同的检查,并将其提供给接收方程序。开发人员没有指定如何为此选择捐助者。

“已经有很多开源程序-存储库中有数百万个项目,其中许多满足类似的规范,”在CodePhage的领导下开发的Stelios Sidiroglu-Duskos说。 -即使程序本质上不同,它们也经常可以找到功能相似的组件。使用CodePhage,有一天将有可能创建这样一种混合系统,其中包括所有可用实现中的最佳组件。”

要开始搜索错误,魔术代码噬菌体需要一些知识-一组输入数据,正在研究的程序崩溃,而另一组数据没有崩溃。然后,噬菌体会自动使用这些数据集启动供体程序,并记录其工作。例如,如果接收方程序可以打开某种格式的文件,但偶然发现某个文件,则CodePhage会记录“正确的”施主程序对该文件执行的所有操作,尤其是对其执行的检查。此后,食道动物分析施主程序的工作与受主程序的工作有何不同,并相应地纠正受主。

开发人员声称他们的程序已经成功修复了无法正常工作的程序,并对未来充满了乐观,因为程序员无需编写那些已经由某人实现了功能的代码。

“从另一个具有类似功能的程序中借用代码并用它来纠正有故障的程序的技术肯定很酷,”马萨诸塞州另一所大学的IT教授Emery Berger说,他评论了专家的工作。“说实话,我很惊讶她甚至工作。”

Source: https://habr.com/ru/post/zh-CN381263/


All Articles