现在当你在谷歌的搜索框中输入文字,它可以自动关联并推送你需要的内容。例如,如果输入“Wi”,将自动关联条目“Wikipedia”;如果你输入“Bra”,谷歌也能猜到你想输入“BradPitt”。虽然谷歌自动填写的搜索内容有时可能与用户自己的想法大相径庭,但更多时候,它确实能准确猜出你要搜索的内容,方便了多余的打字过程。现在,一个政府资助的团队正在开展一个类似的项目,该项目将允许计算机在世界各地的程序员编写代码时自动关联代码。其实质是计算机可以在程序员输入代码之前就猜到他们想输入什么。本周,莱斯大学表示,美国国防高级研究计划局DARPA已投资1100万用于编程自动填充项目,该项目代号为PLINY,以一位古罗马作家的名字命名。莱斯大学计算机科学学院院长、PLINY项目首席研究员VivekSarkar表示,“谷歌的文本搜索预测只是一个例子,人们会用类似的方法来解决更多的问题。”PredictiveCodeFindingVulnerability项目的参与者来自各种机构和研究机构,包括莱斯大学、德克萨斯大学奥斯汀分校、威斯康星大学和专门从事开发工具的公司GrammaTech。PLINY项目将对互联网上的大量开源代码进行索引,构建代码预测引擎。理论上,PLINY还可以定位bug和安全漏洞。如果该项目取得成果,致力于开发复杂软件程序的高科技公司将不必再担心无法招聘到足够优秀的程序员。PLINY并不是第一个尝试解决代码自动填充的项目,微软去年发布了BingDeveloperAssistant。Sarkar表示,PLINY是一个更大的项目,“大多数其他项目只能对代码结构进行简单的文本分析。”Sarkar和他的团队试图做一个软件,即使使用不同的编程语言,软件不仅可以分析文本,还可以读取代码所表达的意思。Sarkar希望PLINY未来能够自动填充长行代码,顺便检查程序员是否有语言错误和安全漏洞。如何做出合理、正确的预测?对于PLINY项目来说,最困难的部分是如何实现合理正确的预测代码。如果您曾经使用过Mr.Clippy、MicrosoftOffice的回形针助手或自动更新博客助手,您就会知道让计算机自动填写正确答案是多么困难。谷歌能做的,就是根据万千网友的“热搜词”,预测你可能输入的搜索内容。双代码预测不是这种情况,通常使用最广泛的代码段不是最佳解决方案。Sarkar承认,解决自动填充的似是而非的正确性是PLINY项目中最艰巨的挑战,但他认为他的团队是该项目的完美选择。团队成员均有能源领域和医学研究机构的大数据分析经验。Sarkar表示,莱斯大学多年来一直希望将机器学习算法应用到软件开发领域,而Darpa为大家提供了这个宝贵的机会。PLINY的项目始于研究互联网上的开源代码,通常来自GitHub和Sourceforge等托管服务,以及Apache基金会等其他开源项目。此外,PLINY希望代码自动完成项目能开发企业版,用于索引大公司和企业的软件程序。PLINY还建立了代码存储和分析的数据库系统,为建立优化代码索引提供了多种方法,提高了代码质量。该程序可以自动识别“特殊代码”并给予它们优先权。虽然PLINY项目的结果看起来类似于谷歌的预测搜索,但它会更有用。英文原文:The$11MToolThatCouldComputersWriteTheirOwnCode翻译自:http://www.leiphone.com/news/201411/FGDvotfrBteORUzY.html
