Faebook開源智能代碼查錯工具Infer
開源已是大勢所趨。不僅Google 公開了自己最重要的秘密之一 ,社交巨頭非死book對開放也一直都是保持開放的態度。比方說它有推進數據中心基礎設施建設標準化的Open Compute項目,在軟件開源方面更是活躍份子,去它 網站 看看就知道,大大小小的開源項目已經有30多個,涵蓋了Android、iOS、Web、后端、硬件等方方面面。這一次,它又給這一個清單增加了新的成員—移動應用的人工智能查錯工具 Infer ,無論是iOS還是Android開發者均可它用來調試自己的app了。
不要搞錯,這種查錯工具并不是簡單糾正一下語法,而是一種 代碼靜態分析 工具。它可以在不運行代碼(一般開發者的調試方式都是編譯、運行,查看結果,然后人工分析代碼)的方式下,通過詞法分析、語法分析、控制流、數據流分析等技術對程序代碼進行掃描,來驗證代碼是否存在問題或滿足技術指標。
靜態分析工具可以像人一樣對代碼進行思考,分析代碼存在的問題,所不同的是它的效率要高得多,數分鐘之內即可掃描成千上萬行代碼。雖然市面上也 有商業和開源的靜態分析工具,但是Infer的聯合開發者Peter O’Hearn稱,能像Infer這樣對如此規模的代碼進行深度分析的工具是沒有的。Infer可以將大型代碼分而治之,切割成小段代碼,然后再將分析結 果整合起來。這屬于符號化人工智能(有別于更接近人思維模式的神經網絡AI)的一種,據稱其代碼修復率可達80%。
Infer源自O’Hearn和他的學生Cristiano Calcagno及助教Dino Distefano的研究成果。三人創辦了一家初創企業Monoidics,原本打算做成商業化產品。但是后來非死book收購了這家公司并作出了 Infer。他們意識到在這里可以產生更大的影響,最終讓非死book把這種工具開源了。這意味著其他開發者也可以分析工具本身,然后針對自己的需求 改進,做出更好的分析工具;對于非死book來說,開源的意義也正在于此,讓大家幫助Infer變得更好;對于O’Hearn等人來說,這件事的意義 更大,因為靜態分析領域還有很多懸而未決的問題亟待解決。利用群體的力量解決大問題并實現共贏,這才是開源最大的意義。
對研究Infer感興趣的同學不妨移步 此處 看個究竟,前提是你得備把梯子。
本文參考了多個信息來源: wired.com 、 fbinfer.com