對於編程背景經驗較少的人,很難去理解編譯時和運行時的概念。
爲了幫助我們更好地理解這些概念,我們可以藉助一些問題:
1.程序滿足了什麼樣的不變性?
2.在該階段會報什麼錯?
3.如果當前階段成功,我們可以知道些什麼?
4.他們的輸入輸出是什麼?
編譯時:
1.不需要滿足任何不變性。事實上,你都不需要良好的編程。
2.在編譯時會報什麼錯:
a.語法錯誤
b.類型檢查錯誤
c.編譯器崩潰(罕見)
3.如果編譯成功,我們可以知道什麼?
a.程序已經編譯成形
b.我們可以啓動程序
4.輸入,輸出是什麼?
a.輸入是指,程序在 成功編譯後,被添加的頭文件,接口,庫,這些都是在編譯時需要被添加進去的。
b.輸出可以指需要裝配的代碼,也可以是一個能夠執行的程序。如果編譯失敗,那輸出就是一串串錯誤信息。
運行時:
1.我們對程序的不變性一無所知。它們是程序調入的任何值。
2.在運行時可對出現的錯誤:
a.除以0;
b.引用一個空指針
c.內存溢出。
3.如果在運行時能成功,那麼程序能正常執行且不會異常退出。
4.輸入,輸出完全取決於程序員。它可以是文件的獲取,屏幕上的窗口,網絡數據包,文件的打印。