英特爾發布 ControlFlag 1.2,一個偵測原始碼異常的工具

英特爾發布了 ControlFlag 1.2 版本,該工具包可讓您使用經過大量現有程式碼訓練的機器學習系統來識別原始程式碼中的錯誤和異常。 與傳統的靜態分析器不同,ControlFlag 不會應用現成的規則,很難提供所有可能的選項,而是基於對大量現有項目中各種語言結構的使用情況進行統計。 ControlFlag 程式碼是用 C++ 編寫的,並在 MIT 許可證下開源。

新版本的顯著之處在於對基於 C++ 語言通用程式碼模式的異常檢測和學習的全面支援。 在先前的版本中,為 C 和 PHP 語言提供了類似的支援。 此系統適用於識別程式碼中的各種類型的問題,從識別拼字錯誤和類型不匹配,到識別 if 語句中的異常和指標中缺少 NULL 檢查。 該系統是透過建立 C、C++ 和 PHP 開源專案現有程式碼數組的統計模型來訓練的,這些專案發佈在 GitHub 和類似的公共儲存庫中。

在訓練階段,系統會確定在程式碼中建立結構的典型模式,並建立這些模式之間連接的語法樹,反映程式中程式碼執行的流程。 結果,結合了所有分析的原始程式碼的開發經驗,形成了參考決策樹。 正在審查的程式碼經歷了類似的識別模式的過程,並根據參考決策樹進行檢查。 與相鄰分支的較大差異表示正在檢查的模式中存在異常。

英特爾發布 ControlFlag 1.2,一個偵測原始碼異常的工具


來源: opennet.ru

添加評論