編譯時(Compile time)
編譯時指將源代碼轉換為計算機可識別的二進制代碼的這段時間。它開始於翻譯程序開始翻譯源代碼,結束於源代碼翻譯完畢。
“編譯時錯誤”即在翻譯過程中由翻譯程序發現的源代碼錯誤(比如語法錯誤)。
編譯時錯誤包括:
- 語法錯誤
- 類型檢查錯誤
- 編譯器崩潰(很少發生)
編譯時順利(編譯成功)說明:
- 這個程序的源代碼格式正確。
- 可以開始運行該程序(可能運行失敗,但至少可以嘗試運行)。
輸入和輸出:
- 輸入:嘗試進行編譯的源程序,包括它的任何頭文件、接口、庫或其他導入的內容。
- 輸出:可能是匯編代碼或可重定位的目標代碼,甚至是可執行程序,也可能因出錯而輸出錯誤信息,即遇見編譯時錯誤。
運行時(Runtime)
運行時指程序運行的時間段。它開始於程序被打開(或執行),結束於程序退出或關閉。
“運行時錯誤”即在程序運行時發生的錯誤(比如數組越界訪問)。
運行時錯誤包括:
- 除以零
- 訪問空指針所指向的內容
- 內存不足
- 程序本身檢測到的錯誤:
- 試圖打開一個不存在的文件
- 試圖獲得一個網頁,但發現網址格式錯誤
- ...
運行時正常說明:
- 程序將正確結束(或繼續運行)而不會崩潰。
輸入和輸出:
- 完全由程序使用者及程序員決定。文件、屏幕上的窗口、網絡數據包、發送到打印機的信息等等。
參考
Runtime vs. Compile time - Stack Overflow