动态 | 码农福音!CASIL开发代码移植系统,CTRL+C/V快速编程不再是梦想

问:对于码农来说,有哪些可以提高开发效率的技巧?

答:Ctrl+C、Ctrl+V。

(图片来源:知乎)

AI科技评论发现:近日,麻省理工学院计算机科学与人工智能实验室(Computer Science and Artificial Intelligence Laboratory,CASIL)的一项新技术或将成为千百万码农的福音。他们开发了一个叫CodeCarbonCopy的系统,让码农可以将所需要的代码直接移植到新的程序中。具体来说,程序员可以从第一个程序中选择所需要的代码,然后在第二个程序中选择插入的位置,系统将会自动对代码进行修改——例如,变量名等,使得代码可以上下一致。

很厉害吧?这还没完。更碉堡的是,该系统可以在不同程序的不同文件格式和数据结构中进行转换。举个栗子,不同的图像处理程序可能会需要处理不同的文件格式,例如jpg、tiff或png等,在这个系统内部,它将会用单一的标准化方案表示这些图像格式,尽管不同的程序可能会使用不同的方案,但这个系统会自动进行转换,使得代码真正实现“无缝对接”。

CASIL的研究者在ACM软件工程基金会的研讨会上展示了这一系统。他们使用CodeCarbonCopy在六个流行的开源图像处理程序之间移植代码,总共进行了八次这样的代码移植实验,其中七次均取得了成功。

(在不同数据结构中找到对应关系,AI科技评论摘自相关论文)

使用CodeCarbonCopy将代码从一个程序移植到另一个程序的第一步是,将这两个程序都提供给相同的输入文件。然后系统比较两个程序如何处理该文件并自动推断出这些变量在各自的程序中扮演着相同的角色,一旦它确定了变量之间的对应关系,CodeCarbonCopy即可进行相应的处理。如果在两个程序代码中找不到某些变量的匹配项或者这些变量的初始定义,用户可以将这些变量进行标记,同时CodeCarbonCopy将自动从代码移植中消除使用这些变量的操作。

CodeCarbonCopy适用于不同文件格式(例如图像和数据存储)。在图像处理器中,这些程序基本上具备相同大小的存储单元,而在下一步工作中,研究人员正在考虑将文件格式的方法概括为一种,使得程序可以更灵活的组织数据和使用除数组之外的数据结构(如树或链表等)。

小结

让AI来自己编写是近年来人工智能的一个研究方向。如Deepmind开发的DeepCoder就会自己编程,但目前Deepcoder只能解决数行的代码问题,而且在自动拟合的程序中可能会出现很多缺乏逻辑性的代码,但CodeCarbonCopy这种可以大规模移植已有代码的工具的出现,在减轻了码农的负担的同时或许也给他们带来一丝担忧:如果AI也学会用Ctrl+C和Ctrl+V编程,未来还真的是码农们的对手呢。

论文地址:https://people.csail.mit.edu/rinard/paper/fse17.codecarboncopy.pdf

Via MIT,AI科技评论编译

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-09-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

云计算网络应用防火墙提高应用程序的安全性

人们通过云计算网络应用防火墙以确保未在本地托管的应用程序,这是可行的。行业专家马特·帕斯库奇解释它们是如何工作的,以及企业对此所需要了解哪些事情。 如今,网络应...

37711
来自专栏码神联盟

高效编程所需要做的那点事

聊聊如果才能高效编程 计划(Plan) 所谓Plan,其实就是对应于编程中的设计阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式...

2779
来自专栏程序员的知识天地

Python爬虫入门,8个常用爬虫技巧盘点

编程对于任何一个新手来说都不是一件容易的事情,Python对于任何一个想学习的编程的人来说的确是一个福音,阅读Python代码像是在阅读文章,源于Python语...

1271
来自专栏张善友的专栏

依赖注入是否值得?

在博客的世界里进行了一场关于使用依赖注入(DI)之优点和缺点的有趣讨论。论题是:依赖注入是否真的值得? 讨论始自Jacob Proffitt,他撰文解释他的观...

1839
来自专栏CDA数据分析师

强大的图形功能软件:S-Plus

【摘要】S语言是由AT&T 贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。它的丰富的数据类型(向量、数组、列表、对象等)特别有利于实现新的统...

19710
来自专栏ytkah

微信整人游戏高级版 友谊的小船真会翻【微信高级教程5】

  虽然愚人节已经过去好长一段时间了,但好友之间的整蛊游戏不会就这样结束。看好了,微信整人游戏高级版来了:在微信任意聊天窗口输入 //fullexit ,相当于...

37114
来自专栏SeanCheney的专栏

《Python分布式计算》第1章 并行和分布式计算介绍 (Distributed Computing with Python)并行计算分布式计算共享式内存vs分布式内存阿姆达尔定律混合范式总结

本书示例代码适用于Python 3.5及以上。 ---- 当代第一台数字计算机诞生于上世纪30年代末40年代初(Konrad Zuse 1936年的Z1存在争议...

3538
来自专栏北京马哥教育

Linux 内核学习经验总结

学习内核,每个人都有自己的学习方法,仁者见仁智者见智。以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下。

4052
来自专栏数据小魔方

当PowerBI遇到R语言

PowerBI作为微软系最新的商务智能办公系统,自去年发布以来,一直都备受瞩目。 他的更新频次相当之高,功能更新迭代非常迅速。 大概对可视化领域稍有涉猎的朋友们...

4814
来自专栏SDNLAB

SDN实战团分享(十七):EVPN Architecture

2006年加入JUNIPER中国Systems Engineer团队并兼任臭名昭著的Proctor工作 2010年加入JUNIPER美国大客户技术支持团队(就是...

7369

扫码关注云+社区