美国防部开发能帮电脑自动写代码工具

发表于:2014-11-10 09:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:艾米丽    来源:网易科技

  当你打开谷歌输入想要搜索的事物时,它总会自动猜想你可能寻找的关键词。输入Wi它可能自动联想Wikipedia(维基百科),输入Bra它会联想到Brad Pitt(布拉德·皮特)。有时候这些自动填写可能与你想要搜索的完全不相关,但大多数情况它还是非常准确的,这为你的搜索提供了捷径。
  现在一支政府支持的科研小组想要为全世界的程序员在编写计算机代码时提供相似的提示,也即在程序员完成编码前猜想它们想要编码的内容。美国莱斯大学于本周表示,作为五角大楼的疯狂科学部门,美国国防部先进研究计划署(DARPA)对这个代号为PLINY的自动填写编码项目投资了1100万美元,这一项目是以第一部百科全书的古罗马作者为名。“文字搜索预测是描述这一项目的最好比喻,”莱斯大学计算机科学学院院长、PLINY项目首席调查员维韦克·萨卡尔(Vivek Sarkar)这样说道。“人们将能够从一系列可能的解决方案中进行挑选。”
  这一项目包含来自莱斯大学、德克萨斯州大学奥斯汀分校、威斯康星大学麦迪逊分校以及源代码分析工具制造商GrammaTech公司的研究人员。PLINY将从网页里收集到的大量开源代码编入索引,从而形成一个强大的预测引擎,研究人员希望它可以预测编码人员将输入的代码。从理论角度说,它应该可以检测漏洞或者安全隐患。
  如果这一项目顺利进行,那么它或将为那些找不到合格程序员参与研究日益复杂的软件项目的公司带来福音。这是大量初创企业,从趣味编程网站Codecademy 到试图让编程变得更简单的工具Light Table,都试图解决的问题。
  PLINY并不是第一个旨在为程序员建立自动填写系统的项目。微软正在利用去年发布的插件Bing开发助理进行相似的研究。然而,萨卡尔表示PLINY是一个更雄心勃勃的项目。“大多数其它项目都是利用代码结构的知识进行文字分析。”而萨卡尔带领的研究小组试图开发的软件不仅可以分析文字,还会分析代码里所表达的概念,无论程序员所编写的是哪一种程序语言。萨卡尔希望PLINY可以自动提示与提供程序员编写内容无缝结合的代码,它甚至可以纠正安全隐患和其它错误。
  然而,这并非易事。如果你曾有过使用微软Office 97时代的Clippy(大眼夹)辅助工具的经历,或者浏览过“该死的自动更正”(Damn You Autocorrect)博客,你就会意识到纠正这些预测系统有多困难。虽然谷歌是部分通过了解最常见的搜索术语从而实现预测搜索关键词,但在编程世界里情况则有所不同。最常见的解决方案可能并不是最优的解决方案。
  萨卡尔承认他们的科研小组面临着巨大的挑战,尤其是确保高质量的代码和可用性方面。但他认为鉴于为能源部和健康保健领域的其它应用程序做过大数据分析的背景,他的研究小组正是迎接这一挑战的最佳人选。他表示莱斯大学一直想要将部分机器学习算法应用于软件开发,DARPA恰好提供了实现途径。
  PLINY小组将首先分析网络上的开源代码,主要是利用例如GitHub和 Sourceforge提供的代码托管服务,同时还将分析各种重大的开源项目,例如Apache基金会管理的一些项目。最终,萨卡尔设想了一个可以索引企业所有专有软件项目的企业版本。
  研究小组还将建立一个为存储和分析代码专门设计的自定义数据库系统。这个数据库将提供对索引代码进行组织和划分优先级的途径。这将帮助解决代码质量问题。那些非常好的项目可以优先考虑,或者由特定程序员编写的代码也具有优先级。项目的最终成果可能类似于谷歌的自动填写,但有用性要高得多。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号