程序編譯為何失敗?

jopen 10年前發布 | 5K 次閱讀 編譯

        完美的程序不會是一次就寫成功的,都要經過反復編譯、調試、修改。調試過程可能會花費大量的時間,如果了解了常見編譯錯誤發生的原因,這有助于節省時間,提高開發效率。

        Google、香港科技大學和內布拉斯加大學的研究人員分析了 1.8 萬 Google 工程師在 2012 年 11 月到 2013 年 7 月之間的超過 2600 萬次編譯,分析出了編譯失敗的常見原因、修復所花費的時間等。

        下圖顯示了這些數據收集的過程。

程序編譯為何失敗?

        1.   編譯失敗率與編譯次數、開發者經驗無關

        研究人員推測,編譯次數越多,出錯的幾率也就越大。但是實際數據顯示,這兩者之間沒有相關性。

        研究人員還推測,有經驗的開發者出錯率會比較低,但事實也并非如此。

        2.   絕大多數編譯失敗與依賴有關

程序編譯為何失敗?

        大約 65% 的 Java 編譯錯誤被認為跟依賴有關,比如編譯器無法找到一個符號(這是最常見編譯錯誤,占所有編譯錯誤的 43%),或者是包不存在。

        在 C++ 編譯中,大約 53% 的編譯錯誤跟依賴相關,最常見的錯誤是使用了未聲明的標識符和不存在的類變量。

        3.   C++ 代碼編譯更容易出錯

        下圖是編譯錯誤率(x軸)對應的開發者人數(y軸)。

程序編譯為何失敗?

        研究發現,C++代碼的構建失敗率為 38.4%,而 Java 為 28.5%。此外,在 C++ 編譯中發生語法錯誤比 Java 更頻繁,但是 C++ 編譯錯誤會得到更快的解決。

        研究人員認為,造成這種差異的原因是 Java 開發一般使用 IDE,這有助于減少一些簡單的語法錯誤,但 IDE 生成的代碼在一定程度上也增加了解決編譯錯誤的難度。

        詳細報告:Programmers’ Build Errors : A Case Study (at Google)(PDF)

來自: www.iteye.com
                    <span id="shareA4" class="fl">                            
                        </span> 

</div>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!