麻省理工學院推出 CodeCarbonCopy,程式碼移植變簡單了

作者 | 發布日期 2017 年 10 月 04 日 12:00 | 分類 AI 人工智慧 , 軟體、系統 follow us in feedly

麻省理工學院(MIT)的科學家開發出一款名為 CodeCarbonCopy(CCC)的新工具,其中一名開發成員 Stelios Sidiroglou-Douskos 表示:「CodeCarbonCopy 能實現軟體工程界夢寐以求的目標之一:自動重用程式碼。」



透過 CodeCarbonCopy,開發人員可先選 A 軟體一段程式碼,再選 B 軟體的插入點,系統就能自動完成必要變更,如改變參數名稱等,以確保程式碼妥善植入 B 軟體。且移植程式碼時,CodeCarbonCopy 還能執行靜態分析,移除 A 軟體必要但對 B 軟體毫無作用的功能。

CodeCarbonCopy 之所以能夠做到這些,

第一是有基本變數移植的能力,使用 CodeCarbonCopy 意味著從抓取和導入程式碼片段的兩個地方並列執行程式,CodeCarbonCopy 可辨識完成同一角色的變數,並幫作業人員將它們列出來。它還能顯示無法符合的變數,這樣一來,程式設計師可以手動關聯變數或將變數從移植過去的程式碼去除。

另外,CodeCarbonCopy 還能考慮兩個程式在內部如何表示資料,相應調整移植過去的程式碼。這參照每個程式庫如何處理資料(比如兩種不同的色彩格式 RGB 和 BGR 之間調整)、以什麼順序處理。也正因如此,CodeCarbonCopy 目前僅適用處理的資料採固定格式的應用程式間移植,比如圖像、影片、音訊、PDF 及其他格式。

據悉,該工具沒有正式對外釋出,還在內測和完善階段。研究團隊透露,他們已成功使用 CodeCarbonCopy 在 6 款流行的開源影像處理程式之間移植程式碼。團隊進行了 8 次試驗,其中 7 次成功,接受端程式成功執行移植過去的程式碼,沒有錯誤。測試的軟體分別為:MPlayer、VLC、mtPaint、cwebp、bmp2tiff 與 ViewNIOR。

當然,這不是麻省理工學院(MIT)第一次嘗試程式設計界的革命。之前,他們還設計開發了一款兒童程式設計工具 ScratchJr。使用者可以不認識英文單詞,也可以不會使用鍵盤。構成程式的指令和參數透過積木形狀的模組達成,用滑鼠拖曳模組到程式編輯欄就可以了。

此外,MIT 開放的影像標注工具來源碼 LabelMe 也是一款非常實用的圖像輔助工具。眾所周知,電腦視覺需要用到大量標註圖片,這款工具能幫助用戶建立自訂化標注工作或執行圖片標註,進而提升效率。

(本文由 36Kr 授權轉載;首圖來源:pixabay

延伸閱讀: