PLINY:一个让计算机自己编程的项目

现在当你在Google的搜索框中输入文字时,它能自动联想推 送出你需要的内容。比如说,输入“Wi”,词条“Wikipedia”就自动联想出来;输入“Bra”,Google也能猜到你想输入“Brad Pitt”。虽然说Google自动填写的搜索内容有时候与用户本人的想法可能大相径庭,但是更多的时候,它的确能准确的猜出你想要搜索什么,为冗余的打 字过程提供了便利。

现在一个政府资助的团队正在研究类似的项目,让全世界的程序员们在写代码时,计算机能够自动联想。其本质就是,计算机能够在程序员们输入代码前,就猜出他们想敲的内容。

本周,赖斯大学表示美国国防部高级研究计划局DARPA已经投资1100万美金给编程自动填写项目,用古罗马作家的名字命名代号为PLINY。赖斯 大学的计算机科学学院院长、PLINY项目的主要研究人Vivek Sarkar说,“Google的文本搜索预测只是一个例子,接下来人们会用相似的方法解决更多的问题。”

在敲代码之前提前预测代码 查找漏洞

项目的参与人员来自各个机构和研究院,包括赖斯大学、德州大学奥斯汀分校、威斯康星大学以及专门制作开发者工具的GrammaTech公司。 PLINY项目将会索引互联网上海量的开源代码,来搭建代码预测引擎,理论上说,PLINY也能够做到定位bug和安全漏洞。如果项目得以实现,那些致力 于研发复杂软件程序的高科技公司,再也不用担心招聘不到足够人手的优秀程序员了。

PLINY并不是第一个试图解决代码自动填写的项目,微软在去年发布了Bing Developer Assistant(必应开发者助手)。Sarkar表示PLINY是一项更重大的项目,“其他大多数的项目做到的只能是机遇代码结构的简单的文本分析。”

Sarkar和他的团队尝试制作一款软件,即便是运用不同的编程语言,软件不仅能够做到分析文本,同样也能读取代码表达的意思。Sarkar希望PLINY今后可以自动填写大段长串代码,顺便检查程序员的语言错误和安全漏洞。

如何做到合理正确的预测?

对于PLINY项目而言,最困难的地方就是如何做到合理正确的预测代码。如果你曾经用过微软Office软件中的曲别针助手Clippy先生,或者 自动更新博客助手,你就能体会到让计算机自动填写正确的答案是多么多么困难的事情。Google能做到的也仅仅是依据成千上万网民们的“搜索热词”,水到 渠成的预测出你可能会输入的搜索内容。二代码预测可不是这样,一般来说最广泛使用的代码段并不是最好的解决方案。

Sarkar承认解决自动填写的合理正确性是PLINY项目中最棘手的挑战,但是他认为他们团队是该项目的不二之选。团队成员都有着在能源部门和医 疗研究机构从事大数据分析的经验。Sarkar说赖斯大学多年来一直希望把机器学习的算法应用到软件开发的领域,Darpa给大家提供了这次珍贵的机会。

PLINY的项目从研究互联网中的开源代码开始,这些代码通常来自提供主机服务的GitHub 和Sourceforge,以及其他的开源项目例如Apache Foundation。此外PLINY希望代码自动填写项目能够开发出企业版本,用于索引大公司和企业的软件程序。

PLINY同样建立了数据库系统用来存储和分析代码,这为建立优化代码索引提供了多种的方法,提高了代码的质量。程序能够自动识别“特殊代码”,并且给予优先级别。

虽然说PLINY项目的成果会看上去和Google的联想搜索很相似,但是它将会实用的多。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-19 09:02:40

PLINY:一个让计算机自己编程的项目的相关文章

一个零基础自学编程的菜鸟真诚向各位高手请教!

问题描述 我是一个零基础,不是计算机专业的计算机编程爱好者,我非常喜欢编程做软件的那种感觉.但是我已经这里那里的公司混了一年了,依然感觉自己做不出来什么东西,目前最基本的SQLSERVER都不会用,但是目前又在一家公司硬着头皮学习,但是我知道我肯定留不长的.因为我的基础非常有限,因为家里穷,必须工作,否则连填饱肚子的钱都没有.我非常想突破自己现在的瓶颈,我不知道如何去突破.基本的C#语言看的懂,但是到运用他们完全不看书开发一项简单的任务时就不知所措,完全不知从哪里下手.书,我也买了不少,基本开了

MS-DOS的历史要追溯到1980年的一个代号名为Chess的项目

微软本日宣布与计算机历史博物馆一起合作将早期Windows版本的MS-DOS及Word源码对公众开放. MS-DOS的历史要追溯到1980年的一个代号名为"Chess"的项目.项目一开始的目标是为IBM提供一个BASIC语言的解析器,但随后被要求进一步开发一个操作系统.微软动用了1/3员工(35人)的力量最终做出了两个版本,一个是授权给IBM的PC-DOS,另一个则是给其他PC制造商的MS-DOS,代码的大小不超过300KB.而Windows版的Word则是在1989年发布,之后用了不

编译-一个java新手在编程路上遇到的问题

问题描述 一个java新手在编程路上遇到的问题 路过的大牛瞄一眼,谢谢...大一学生一枚,java学到网络编译了,最近在实现ftp服务器,目前还没写出来,心情十分郁闷,我觉得自己要成为编程员的随机应变能力还不够,编程路上的困惑,曾经也遇过类似状况求个回复. 解决方案 没什么,大一的时候让我自己去实现一个ftp服务器,我也觉得挺困难的.所以你要上大学啊. 解决方案二: 困惑:坚持.不会:学习.前排 解决方案三: 任何知识都有一个主干,首先要了解基本的原理,然后再学习细节.如果你是自学,一定要注意这

asp.net编程获取项目根目录实现方法集合_实用技巧

本文实例总结了asp.net编程获取项目根目录实现方法.分享给大家供大家参考,具体如下: 编写程序的时候,经常需要用的项目根目录.自己总结如下 1.取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2.AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集 2.取得Web应用程序的根目录方法 方法1.HttpRuntime.AppDoma

026_《Delphi 深度编程及其项目应用开发》

<Delphi 深度编程及其项目应用开发> Delphi 教程 系列书籍 (026) <Delphi 深度编程及其项目应用开发> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 作者: 李存斌 汪兵 编著 丛书名: 万水软件项目应用与实例开发丛书 出版社:中国水利水电出版社 ISBN:7508412133 上架时间:2002-10-24 出版日期:2002 年9月 开本:16开 页码:391 版次:1-1 内容简介 本书是在总结作者多年Delphi

彻底优化计算机开机时启动项目

  首先检查开始菜单中启动项目中是否有相关开机启动的软件设置,如有则安需要进行删除. 计算机开机时启动项目-优化开机启动项"> 利用系统配置功能实现开始运行 msconfig 回车. 进行系统配置对话框,选择启动选项卡. 把不需要开机启动的项目前选项对勾去掉即可.利用注册表功能实现开始运行 regedit 回车 打开注册表编辑器窗口. 选择进入到目录 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun HKEY_LOCAL

c语言-一个入门级C语言编程问题

问题描述 一个入门级C语言编程问题 已知地球的平均半径为6371.393千米,假设在地球的某一纬度上,有两个处于不同经度的点A.B,用C语言编程求出这两点之间的直线距离.这两点在该纬度剖面上切圆的劣弧长度,以及这两点之间的球面距离.以下是我写的代码.#include ""stdio.h""#include ""math.h"" main(){double xyztsdlRr=6378.137pi=3.1415926;scanf

云效(原RDC)如何构建一个基于NodeJS的前后端项目

最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了RDC团队大量的帮助,所以利用国庆时间写了几篇RDC的分享,希望能让更多的人了解和用好RDC这个产品. 我会把我最近3个月的使用体会分成5个部分:使用RDC的动机.PHP项目集成.JS项目集成.JAVA项目集成.Docker类项目集成这5个分支来写 因为近期RDC的迭代比较频繁,所以我的分享会比较的浅,点到为止,仅供参考,目录: 1.RDC如何耦合进我们的业务 2.如何构建一个基于Composer的PHP项目 3.如何构建一个基于Nod

VS2008+Qt一个解决方案下有多个项目是什么意思?这样做有什么用?各个项目之间文件有什么联系?

问题描述 VS2008+Qt一个解决方案下有多个项目是什么意思?这样做有什么用?各个项目之间文件有什么联系? 1.一个解决方案下有几个项目,这样是做什么用的?2.我看这几个项目里包含有部分相同的文件,这样是什么意思? 如果改动其中一个项目的文件,其他项目里的该文件会怎么样?3.之前查的资料说是什么引用,没看懂. 请求指点.谢谢你们! 解决方案 要具体看什么解决方案什么项目. 比如说一个经典的程序,分为客户端.服务器端,那么就要2个项目.其中客户端和服务器端显然共用调用接口之类的代码,那么这些代码