機器時代下計算機編程顯得尤為熱門,但事實上,計算機編程一直都不是件容易的事。最初程序員是在圖紙上手寫程序,然後再把符號轉換成計算機能夠處理的一大堆穿孔卡片。只要有一個標記放錯了地方,整個程序就得重寫,而bug即便成了程序員的家常便飯,也依舊屢見屢崩潰。
如今,程序員可以使用一系列高效的工具來自動化大部分工作,它們可以在鍵入時查找錯誤,也可以在部署前測試代碼。但還是有許多方面幾乎沒有改變。一個愚蠢的錯誤仍然會整個軟件崩潰,現在的系統越來越複雜,追蹤這些漏洞也越來越困難。隨着硬件和軟件系統越來越複雜,再加上開發硬件和軟件系統所需的程序員的儲備,讓機器編碼的開發成了多年來的研究熱點。
近日,來自英特爾、麻省理工學院和喬治亞理工學院的研究人員宣佈了一種新的機器編程系統,旨在檢測代碼的相似性。機器推斷代碼相似性系統是一個自動引擎,能夠確定兩段代碼、算法的數據結構何時執行相同或相似的任務。
研究人員解釋説,MISIM不同於其他代碼相似性系統,因為它使用了上下文感知語義結構,它提供了更多關於代碼做什麼的洞察,而不僅僅是它是如何做的。其他類似的代碼系統嘗試確定相似的特性或相似的目標,而MISIM可以確定執行類似計算的代碼。而這是邁向機器編程更宏偉願景的重要一步。
此外,MISIM不需要編譯器將人類可讀的源doe轉換為計算機可執行的機器代碼。這將給現有的系統帶來很多好處,包括能夠在開發人員當前編寫的不完整代碼片段上執行——這對於推薦系統或自動修復錯誤來説是一個重要的實用特性。
一旦代碼的結構被集成到CASS中,神經網絡系統就會根據代碼的設計任務,對代碼進行相似性評分。換句話説,如果兩段代碼在結構上看起來非常不同,但執行的功能相同,那麼神經網絡會將它們評為基本相似。研究人員還表示,MISIM能夠比先前的系統更準確地識別出類似的代碼片段。
研究人員表示,接下來計劃擴展解決方案的功能集,開發代碼推薦引擎,並與其他軟件團隊合作,看看如何將MISIM集成到日常開發中。而這對於各大程序員或者程序員日漸光潔的額頭來説或許都是一大福音。