英特尔与麻省理工学院(MIT)以及乔治亚理工学院(Georgia Tech)共同推出了一种新的机器编程(machine programming,MP)系统。该系统称为机器推断代码相似性(machine inferred code similarity,MISIM),是一种自动化引擎,旨在通过研究代码的结构、并分析具有类似行为的其他代码的句法差异,来了解某个软件的意图。
(来自:Intel | PDF)
然后,系统可以建立数据库,在数据库中为具有相似结果的软件代码提供相似性评分。基于这些预先存在的代码目录,MISIM 可以了解新算法的意图,并通过提供一些其他编程方法建议或选项等来提高代码效率,从而帮助工程师开发软件。
MISIM 可以准确判断两段代码是否执行相似的计算过程,即使这些代码使用不同的数据结构和算法。目前,英特尔计划在内部使用该工具,以协助开发人员完成诸如调试之类的日常任务。
英特尔机器编程研究院创始人、首席科学家及总监 Justin Gottschlich 称,“英特尔机器编程的最终目标是使软件的创建民主化。完全实现后,MP 将使每个人都能以最适合自己的方式表达自己的意图(无论是代码、自然语言还是其他方式)来创建软件。 这是一个大胆的目标,尽管还有很多工作要做,但 MISIM 是迈向这一目标的坚实一步。”
据介绍, MISIM 与现有代码相似度系统关键的不同点在于,其使用一种称为上下文感知语义结构(context-aware semantic structure,CASS)的新技术。该技术可使 MISIM 在更高层次上解释代码-不仅是程序的结构,而且还包括其意图;且 MISIM 无需使用编译器即可完成所有这些工作。此外,MISIM 能够在开发人员尚在编写的不完整代码段上执行,对于推荐系统和自动 bug 修复等
应用情景来说,具有重要实际意义。
一旦将代码的结构集成到 CASS 中,神经网络系统就会根据其设计要执行的工作,为代码片段提供相似性评分。换句话说,如果两段代码在结构上看起来有很大不同,但执行相同的功能,那么神经网络就会将它们评为高度相似。
英特尔方面表示,MISIM 识别相似代码段的精确度是此前最先进系统的 40 倍。接下来,其计划扩展解决方案的功能集、开发代码推荐引擎,并与其他软件团队合作,寻求将 MISIM 集成到日常开发中的方法。
而针对“这一技术是否会取代现有的开发人员角色?”这一提问,Gottschlich 则回应 ZDNet 称,“不会这么快”。机器编程将始终需要一些代码形式的数据,而专业人员则需要管理更专业的编程方面。但是不同之处在于,将有数百万的人尝试开发软件。甚至与担忧相反,这一技术将会带来更多工作机会。“当机器编程完全实现时,我们相信它不会削减工作岗位,而是可能会创造数百万个工作岗位。”
正如 ZDNet 所说,MISIM 背后的团队所设想的自动化软件开发之路还道阻且长。不过和许多其他创新一样,现在考虑这项技术可能产生的影响,无论好坏,都还为时过早。目前,英特尔和麻省理工学院的实验室在解决机器编程带来的技术挑战的同时,也在研究相关的哲学和伦理问题。各方已经在进行会谈,以减轻对该技术的负面使用。