【.comExpressTranslation】一批新的工具正在使用机器学习和其他方法来自动化部分软件开发过程。例如,GitHub上个月推出了一种工具,可以在程序员开发代码时为他们提供建议。Amazon还创建了CodeGuru,这是一种帮助自动查找软件性能瓶颈的工具。Facebook有Aroma,它也提供代码建议。我自己在英特尔实验室的团队构建了一个工具(目前仅供我们内部使用),可以自动检测代码中的错误。这种自动编程被称为“机器编程”。它最有趣的特性之一是“代码语义相似性”,它试图自动确定两段代码是否表现出相似的特征或实现相似的目标。由于计算技术的进步、对“大代码数据”的访问(例如IBM/MIT的新CodeNet项目,包含大约1400万个代码样本)和新的机器学习算法,这最近成为可能。通过利用代码语义相似性的力量,该行业已经能够开发自动化系统,帮助CIO确保开发团队在硬件和软件复杂性增加的情况下保持相同的生产力水平,同时解决软件开发人才短缺和工作场所倦怠的问题。支持语言到语言的翻译代码语义相似度也可以用于在编程语言之间进行翻译的工具(即翻译器)。过去,将程序的源代码从一种编程语言翻译成另一种编程语言的软件系统是遥不可及的。然而,对于历来使用更专业的传统语言进行编程的大型全球组织而言,最近在翻译方面的进步可能意义重大。想象这样一个世界,机器编程系统可以在几天内为您完成所有工作,而不是花费数年时间手动将整个组织的代码库从COBOL转换为Python。此类系统的原语已经存在,甚至今天在Adob??e等科技公司中使用。例如,据我所知,AdobePhotoshop使用经过验证的提升将C/C++转换为当前版本的Halide。机器推断代码相似度(MISIM)等代码语义相似度系统不仅可以帮助组织更新其整个代码系统,还可以扩大人才库。随着越来越多的开发人员熟悉这些新语言(例如,从FORTRAN迁移到Python),将组织的代码库从当今软件开发人员不太了解的较旧的遗留语言更新为现代编程语言将使招聘变得更加容易。简单的。CIO甚至可能会看到更少的编程错误,因为新时代的语言往往更容易在内部获取和处理大部分系统复杂性。改进新手开发人员并帮助填补开发人员的空白。代码语义相似度系统也可以建议代码。例如,前面提到的GitHubCo-Pilot旨在了解一款软件的意图,然后建议改进(或更完整)的版本以帮助开发人员。如果充分发挥其潜力,此类代码建议系统有望通过为新手和专家开发人员提供改进的替代方案来提高软件质量和生产力。最终,这将帮助CIO及其IT部门跟上软件需求,而无需雇用额外员工或花钱购买新资源。这些代码建议系统的最终愿景是提高所有开发人员的生产力。语义相似度系统还可以与开发人员合作,自动检测代码中的错误。结论由于软件和硬件的异构性,软件开发领域变得越来越复杂。开发团队也有望越来越快地构建软件。对于CIO和他们监督的软件开发而言,机器编程可能是唯一经济可行的方法。因此,现在是开始试验新兴机器编程工具并学习如何在您的组织中最有效地实施它们的好时机。原标题:为什么机器编程应该是你投资的下一个技术,作者:Justin
