碼農福音!CASIL開發代碼移植系統,CTRL+C/V快速編程不再是夢想

問:對於碼農來說,有哪些可以提高開發效率的技巧?

答:Ctrl+C、Ctrl+V。

(圖片來源:知乎)

近日雷鋒網發現,麻省理工學院計算機科學與人工智能實驗室(Computer Science and Artificial Intelligence Laboratory,CASIL)的一項新技術或將成為千百萬碼農的福音。他們開發了一個叫CodeCarbonCopy的系統,讓碼農可以將所需要的代碼直接移植到新的程序中。具體來說,程序員可以從第一個程序中選擇所需要的代碼,然後在第二個程序中選擇插入的位置,系統將會自動對代碼進行修改——例如,變量名等,使得代碼可以上下一致。

很厲害吧?這還沒完。更碉堡的是,該系統可以在不同程序的不同文件格式和數據結構中進行轉換。舉個栗子,不同的圖像處理程序可能會需要處理不同的文件格式,例如jpg、tiff或png等,在這個系統內部,它將會用單一的標準化方案表示這些圖像格式,儘管不同的程序可能會使用不同的方案,但這個系統會自動進行轉換,使得代碼真正實現「無縫對接」。

CASIL的研究者在ACM軟件工程基金會的研討會上展示了這一系統。他們使用CodeCarbonCopy在六個流行的開源圖像處理程序之間移植代碼,總共進行了八次這樣的代碼移植實驗,其中七次均取得了成功。

(在不同數據結構中找到對應關係,雷鋒網摘自相關論文)

使用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,雷鋒網編譯


想在手機閱讀更多網絡資源資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems