来源:新智元
英特尔科学家与麻省理工学院,以及佐治亚理工学院的研究人员合作开发了机器推断代码相似性(MISIM)系统,其性能比当前最先进的系统高出40倍。计算机编程从未如此简单。
最初,程序员用手编写程序,将符号写到方格纸上,然后将它们穿孔打卡,计算机才可以对其进行处理。如果有一个标记不准确,整个过程可能需要重做。
如今,程序员使用了一系列功能强大的工具,可自动完成大部分工作。但是如果出现一个愚蠢的 bug 仍然可能使整个软件崩溃,随着系统变得越来越复杂,跟踪这些 bug 变得越来越困难。
最近,英特尔科学家与麻省理工学院(MIT),以及佐治亚理工学院(Georgia Tech)的研究人员共同推出了一种新的机器编程(MP)系统——机器推断代码相似性(MISIM)。该系统是一种自动引擎,旨在通过研究代码的结构,并分析具有类似行为的其他代码的句法差异来学习某个软件计划执行的操作。
MISIM系统的性能要比当前最先进的系统高出40倍,可以看出从代码推荐到自动错误修复的应用前景。
MISIM:提高开发效率,性能是最先进相似性系统的40倍
随着异构计算的兴起,硬件和软件系统变得越来越复杂。这种复杂性,再加上缺乏能够在多种体系结构中以专家水平进行编程的程序员,使得人们对新开发方法的需求日益凸显。
多年来,自动代码生成一直是研究的热点。微软正在将基本的代码生成构建到其广泛使用的软件开发工具中。
Facebook 开发了一个名为 Aroma 的系统,该系统可以自动完成小程序,而 DeepMind 开发的神经网络可以提供比人类设计的更有效的简单算法版本。甚至 OpenAI 的 GPT-3 语言模型也可以从自然语言提示中生成简单的代码段。
机器编程是英特尔实验室和麻省理工学院在「The Three Pillars of Machine Programming」论文中提出的一个术语 ,旨在通过使用自动化工具来提高开发效率。
这些新兴机器编程工具中的一项关键技术是代码相似性,它能准确有效地自动化某些软件开发过程来满足这一需求。
然而,建立精确的代码相似性系统是一个尚未解决的问题。这些系统试图确定两个代码片段是否显示出相似的特征或旨在达到相似的目标。当仅学习源代码时,这是一项艰巨的任务。
因此, 研究人员提出了机器推断代码相似性(MISIM),这是一种全新的端到端代码相似性系统。MISIM 可以准确推断两段代码何时执行相似的计算,即使这两段代码使用不同的数据结构和算法。
英特尔实验室首席科学家兼机器编程研究总监 Justin Gottschlich 表示,「这是迈向更宏伟的机器编程愿景的重要一步。」
MISIM 与现有代码相似性系统之间的核心区别在于其新颖的上下文感知语义结构(CASS),其目的是了解代码的实际作用,可以帮助从代码语法中提升语义含义。
与其他现有方法不同,它可以将 CASS 配置为特定的上下文,从而使其可以捕获更高级别描述代码的信息。CASS 可以提供有关代码功能而非方法的更具体的见解。
此外,MISIM 无需使用编译器即可对代码进行评级,编译器将人类可读的源代码转换为计算机可执行的机器代码。
与现有系统相比,MISIM 还具有许多优势,包括能够在开发人员当前正在编写的不完整代码段上执行的能力,这是推荐系统或自动错误修复的重要实用特征。
MISIM系统总揽
MISIM 提供了基于神经的代码相似性评分算法,该算法可通过具有学习参数的各种神经网络体系结构来实现。
一旦将代码的结构集成到 CASS 中,神经网络系统就会根据其设计要执行的工作,为代码片段提供相似性评分。
换句话说,如果两段代码在结构上看起来有很大不同,但执行相同的功能,则神经网络会将它们评为大致相似。
来源:AI_era 新智元
原文链接:http://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&mid=2652075556&idx=4&sn=b9034b6c5d379ec865de5a55cea38a48&chksm=f12002d5c6578bc3aaab2b43d0c902e703846925a0120bcf28f91a16d906eff407b662f6e122&scene=27#wechat_redirect
版权声明:除非特别注明,本站所载内容来源于互联网、微信公众号等公开渠道,不代表本站观点,仅供参考、交流、公益传播之目的。转载的稿件版权归原作者或机构所有,如有侵权,请联系删除。
电话:(010)86409582
邮箱:kejie@scimall.org.cn