英特爾今天發布了機器編程研究系統ControlFlag,它可以自動檢測代碼中的錯誤。
盡管仍處于早期階段,但這種新穎的自我監控系統有望成為功能強大的生產力工具,以幫助軟件開發人員執行耗時且勞動密集的調試。
在初步測試中,ControlFlag使用了超過10億行未標記的產品級代碼來培訓和學習新的缺陷。
英特爾首席科學家,機器編程研究總監兼英特爾研究院創始人賈斯汀·戈茨利希(Justin Gottschlich)表示:“我們相信ControlFlag是一種功能強大的新工具,可以大大減少評估和調試代碼所需的時間和成本。
該研究發現,軟件開發人員將大約一半的時間花在調試上。
通過ControlFlag和類似的系統,程序員有望大大減少調試時間,并將更多的時間花在人類程序員最擅長向計算機展示創造性的新思想的方面。
如今,當軟件的重要性變得越來越重要時,開發人員仍然繼續花費不成比例的時間來修復錯誤,而不是編寫代碼。
實際上,IT行業每年在1.25萬億美元的軟件開發成本中,約有50%用于調試代碼1。
隨著異構時代的到來,也就是多種多樣的專用處理器的組合來管理當今的海量數據,管理這些系統所需的軟件變得越來越復雜,導致出現錯誤的可能性越來越大。
更傾向于。
此外,很難找到能夠正確,高效和安全地為跨體系結構的硬件編寫代碼的程序員,這也增加了代碼中新的和難以發現的錯誤的可能性。
因此,調試代碼的工作將為開發人員和整個行業帶來更高的價格。
完全實現的ControlFlag通過自動化繁瑣的軟件開發工作(例如測試,監視和調試),可以幫助緩解上述挑戰。
這不僅提高了開發人員的效率,并使他們能夠將更多的時間花在創造力上,而且解決了當前軟件開發中最昂貴的問題之一。
ControlFlag檢測錯誤的功能是通過機器編程實現的,該機器編程結合了機器學習,形式化方法,編程語言,編譯器和計算機系統。
具體來說,ControlFlag通過稱為異常檢測的功能進行操作。
作為人類生活在自然界中,我們了解某些被認為是“正?!钡哪J?。
通過觀察。
同樣,ControlFlag通過學習經過驗證的示例來檢測正常的編程模式,并在代碼中查找可能導致錯誤的異常。
此外,無論代碼使用哪種編程語言,ControlFlag都可以檢測到這些異常。
ControlFlag的無監督模式識別方法的主要優點之一是,它可以從本質上學習適應開發人員的樣式。
在需要評估的控制工具輸入信息有限的情況下,ControlFlag可以識別編程語言中的各種樣式,類似于讀者在使用完整單詞和縮寫詞來識別英語時的區別。
該工具將學習識別并標記這些樣式選擇,并基于其洞察力來識別錯誤并提出解決方案,以便ControlFlag嘗試避免兩個開發團隊之間的樣式差異(因為代碼錯誤)。
ControlFlag已證明,它可以在廣泛使用的產品級代碼中找到隱藏的錯誤,這些錯誤已由軟件開發人員進行過審查。
例如,當分析cURL(程序員廣泛使用的開放源代碼命令行工具來實現Internet下載)時,ControlFlag發現了一個未被發現的異常,促使cURL開發人員提出了一種更好的解決方案。
英特爾甚至已經開始在內部評估ControlFlag的使用,以尋找其自己的軟件和固件產品化過程中的錯誤。
這是“英特爾開發人員快速分析”項目的關鍵組件,該項目旨在通過提供專家支持來幫助程序員加速開發。