专栏名称: 云头条
云计算领域科技媒体:传播观点,传播价值,连接商业与技术;Web:www.yuntoutiao.com ,欢迎互动~~~
目录
相关文章推荐
36氪  ·  茅台崩了,3亿中国人拒绝买单 ·  3 天前  
纳米人  ·  清华大学,Science! ·  6 天前  
纳米人  ·  清华大学,Science! ·  6 天前  
51好读  ›  专栏  ›  云头条

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

云头条  · 公众号  · 科技媒体  · 2017-09-29 23:17

正文


麻省理工学院(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)。