《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 英特爾機(jī)器編程工具可檢測代碼中的Bug

英特爾機(jī)器編程工具可檢測代碼中的Bug

2020-12-06
來源:21ic中國電子網(wǎng)
關(guān)鍵詞: 英特爾 Bug 機(jī)器編程工具

  英特爾今天推出了機(jī)器編程研究系統(tǒng)ControlFlag,,它可以自主檢測代碼中的錯誤,。雖然仍處于早期階段,這個新穎的自我監(jiān)督系統(tǒng)有望成為一個強(qiáng)大的生產(chǎn)力工具,,幫助軟件開發(fā)者進(jìn)行耗時費(fèi)力的Debug,。在初步測試中,,ControlFlag利用超過10億行未標(biāo)記的產(chǎn)品級別的代碼進(jìn)行了訓(xùn)練并學(xué)習(xí)了新的缺陷。

  英特爾首席科學(xué)家,、英特爾研究院機(jī)器編程研究主任及創(chuàng)始人Justin Gottschlich表示:“我們認(rèn)為ControlFlag是一個強(qiáng)大的新工具,,可以大幅減少評估和Debug代碼所需的時間和成本。研究發(fā)現(xiàn),,軟件開發(fā)者會花費(fèi)大約一半的時間用來Debug,。通過ControlFlag以及類似的系統(tǒng),程序員有望大幅減少Debug的時間并把更多時間用于人類程序員最擅長的工作——向機(jī)器展現(xiàn)有創(chuàng)造性的新想法,?!?/p>

  在軟件重要性逐漸突顯的今天,開發(fā)者依然繼續(xù)把不成比例的大量時間用于修復(fù)Bug,,而不是用于寫代碼,。事實(shí)上,在IT行業(yè)每年花費(fèi)的1.25萬億美元軟件開發(fā)成本中,,大約有50%是用于Debug代碼1 ,。

  隨著異構(gòu)時代的來臨,即由多樣化專用處理器組合來管理當(dāng)今的海量數(shù)據(jù),,管理這些系統(tǒng)所需的軟件變得越來越復(fù)雜,,使得出現(xiàn)Bug的可能性也越來越高。此外,,找到能夠?yàn)榭缂軜?gòu)的硬件正確,、高效、安全地寫代碼的程序員非常困難,,這同樣也增加了代碼中出現(xiàn)難以發(fā)現(xiàn)的新錯誤的可能性,。因此,Debug代碼工作將給開發(fā)者和整個行業(yè)帶來更高的代價,。

  完全實(shí)現(xiàn)的ControlFlag通過自動化處理測試,、監(jiān)控和Debug等繁瑣的軟件開發(fā)工作,可以幫助緩解上述挑戰(zhàn),。這不僅可以提高開發(fā)者的工作效率并讓他們把更多時間用于創(chuàng)意,,也能解決當(dāng)前軟件開發(fā)中成本最高的問題之一。

  ControlFlag檢測Bug的功能是通過機(jī)器編程實(shí)現(xiàn)的,,其中融合了機(jī)器學(xué)習(xí),、形式化方法,、編程語言、編譯器和計(jì)算機(jī)系統(tǒng),。

  具體來說,,ControlFlag通過被稱為異常檢測(anomaly detection)的功能進(jìn)行運(yùn)轉(zhuǎn)。作為自然界中生活的人類,,我們通過觀察了解到某些被認(rèn)為是“正?!钡哪J健n愃频?,ControlFlag通過學(xué)習(xí)經(jīng)過驗(yàn)證的例子來檢測正常的編程模式,,發(fā)現(xiàn)代碼中可能造成Bug的異常。此外,,不管代碼使用什么編程語言,,ControlFlag都可以檢測這些異常。

  ControlFlag的無監(jiān)督模式識別方法的一個主要優(yōu)勢是,,它可以從本質(zhì)上學(xué)會適應(yīng)開發(fā)者的風(fēng)格,。在有限的需要評估的控制工具輸入信息中,ControlFlag可以識別編程語言中的各種風(fēng)格,,類似于讀者識別英語中使用完整單詞和縮略語的差異,。

  該工具會學(xué)會識別并標(biāo)記這些風(fēng)格選擇,并根據(jù)其洞察可以自制錯誤識別和建議解決方案,,從而讓ControlFlag盡可能避免把兩個開發(fā)團(tuán)隊(duì)之間的風(fēng)格差異認(rèn)為是代碼錯誤,。

  ControlFlag已經(jīng)證明,能夠在廣泛使用的產(chǎn)品級別代碼中發(fā)現(xiàn)隱藏的Bug,,而這些代碼之前已經(jīng)被軟件開發(fā)者審核過,。例如,在分析cURL(一個開源的命令行工具,,被程序員廣泛地用于實(shí)現(xiàn)互聯(lián)網(wǎng)下載)時,,ControlFlag發(fā)現(xiàn)了一個之前未被發(fā)現(xiàn)的異常,促使cURL開發(fā)者提出了一個更好的解決方案,。

  英特爾甚至已經(jīng)開始評估在內(nèi)部使用ControlFlag,,在自己的軟件和固件產(chǎn)品化中尋找Bug。這是英特爾Rapid Analysis for Developers項(xiàng)目的關(guān)鍵組成部分,,該項(xiàng)目旨在通過提供專家支持從而幫助程序員加快速度,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]