將程序編譯到機器可執(zhí)行代碼是程序員生活中的一個重要部分。如果編譯失敗,程序員將需要花額外的時間和腦力去發(fā)現(xiàn)和修正錯誤,從而影響他們的工作效率。如果能更好的理解常見編譯錯誤發(fā)生的原因,這將有助于提高程序員的效率。
Google、香港科技大學(xué)和內(nèi)布拉斯加大學(xué)的研究人員分析了1.8萬Google工程師在2012年11月到2013年7月之間的超過2600萬次編譯,他們發(fā)表論文(PDF)闡述了編譯失敗的頻率、原因和修正錯誤所花的時間。
他們發(fā)現(xiàn),編譯失敗率與編譯頻率或開發(fā)者經(jīng)驗無關(guān);絕大多數(shù)編譯失敗是依賴相關(guān);C++產(chǎn)生的編譯錯誤高于Java,但修正時間更短——C++代碼的平均失敗率為38.4%,Java為 28.5%,C++代碼中語法錯誤的頻率更高,因此解決錯誤的時間也更短。