MIT工具让程序员可以在不兼容的项目之间移植源代码

2017 年 9 月 29 日 云头条


麻省理工学院(MIT)的科学家们已开发出了一款名为CodeCarbonCopy(CCC)的新工具,这款工具可自动将代码从一个项目移植到另一个项目,对应标注差异之处,让移植过去的代码适用于新的代码库。


这款工具还没有公开发布,因为研究人员仍在竭力改进和完善,但他们在内测环境下已测试成功。


据研究团队声称,他们使用CodeCarbonCopy,在六款流行的开源图像处理程序之间移植了代码。该团队进行了8次试验,其中7次成功,接受端程序成功地执行了移植过去的代码,没有错误。


CodeCarbonCopy的结果


CodeCarbonCopy对应标注不同项目之间的代码


CodeCarbonCopy之所以能够做到这点,是由于其两项固有功能。第一项功能是,代码从一个代码库移植到另一个代码库时,它能够检测并对应标注变量。


使用CodeCarbonCopy意味着从获取和导入代码片段的两个地方并行运行程序。


CodeCarbonCopy可识别完成同一角色的变量,并为操作人员将它们列出来。它还显示了无法匹配的变量,那样程序员可以手动关联变量或者将变量从移植过去的代码去除。


CodeCarbonCopy只是最适用于某个类别的应用程序。


此外,除了基本的变量移植外,CodeCarbonCopy还能考虑两个程序在内部是如何表示数据的,相应调整移植过去的代码。这参照了每个代码库是如何处理数据的(比如在两种不同的颜色格式RGB和BGR之间进行调整)、以什么顺序处理的。


正因为如此,CodeCarbonCopy目前仅适用于在处理的数据采用固定格式的应用程序之间移植代码,比如图像、视频、音频、PDF及其他格式。研究团队正在继续改进CodeCarbonCopy,以便它可以处理更麻烦、更杂乱的格式。


CodeCarbonCopy项目的成员之一斯特利奥斯•西德罗格洛-道斯科斯(Stelios Sidiroglou-Douskos)说:“CodeCarbonCopy能够实现软件工程界梦寐以求的目标之一:自动重用代码。”


这不是MIT第一次试图革编程界的命。2016年1月,MIT携同Adobe公司宣布了Project Helium(http://projects.csail.mit.edu/helium/),这个项目旨在帮助广大开发人员更新较旧的软件代码库,以便在现代硬件上运行,竭力消除软件腐烂(software rot)现象,这个现象又叫比特腐烂(bit-rot)。


两个月后,MIT宣布了一种新的算法:Polaris,该算法将在线网站的页面加载时间最多可以缩短34%。


CodeCarbonCopy是MIT的计算机科学和人工智能实验室(CSAIL)的杰作。科学家们在今年9月初于德国召开的ESEC/FSE 2017大会上介绍了这一成果(https://people.csail.mit.edu/rinard/paper/fse17.codecarboncopy.pdf)。



登录查看更多
0

相关内容

深入学习的成功来自于三个方面:高效的算法、强大的硬件和大规模的数据集。我们的实验室针对前两个方面,麻省理工学院汉实验室正在寻找有动机的学生在深入学习和计算机架构领域来解决有影响的人工智能问题,具有较轻的模型和较高的计算效率。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
266+阅读 · 2020年6月10日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
180+阅读 · 2020年1月1日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
告别 PS !3 行代码 5 秒搞定抠图的 AI 神器!
程序人生
6+阅读 · 2019年7月11日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
无需一行代码就能搞定机器学习的开源神器
人工智能头条
6+阅读 · 2017年11月7日
Exploring Visual Relationship for Image Captioning
Arxiv
15+阅读 · 2018年9月19日
Arxiv
6+阅读 · 2018年5月18日
Arxiv
3+阅读 · 2018年3月22日
Arxiv
7+阅读 · 2018年3月21日
Arxiv
4+阅读 · 2018年1月19日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
266+阅读 · 2020年6月10日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
180+阅读 · 2020年1月1日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
相关资讯
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
告别 PS !3 行代码 5 秒搞定抠图的 AI 神器!
程序人生
6+阅读 · 2019年7月11日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
无需一行代码就能搞定机器学习的开源神器
人工智能头条
6+阅读 · 2017年11月7日
相关论文
Exploring Visual Relationship for Image Captioning
Arxiv
15+阅读 · 2018年9月19日
Arxiv
6+阅读 · 2018年5月18日
Arxiv
3+阅读 · 2018年3月22日
Arxiv
7+阅读 · 2018年3月21日
Arxiv
4+阅读 · 2018年1月19日
Top
微信扫码咨询专知VIP会员