阿摩線上測驗 登入

申論題資訊

試卷:98年 - 098年高等三級暨普通普_資訊處理#32443
科目:程式設計
年份:98年
排序:0

申論題內容

一、⑴程式語言有分直譯式與編譯式,請問有何差異?(9 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
編譯型語言和解釋型語言的主要區別在於它們的源代碼是如何被轉換成機器可以執行的代碼的,以及這個轉換過程發生的時間點。
編譯型語言:
轉換過程:編譯型語言在程式運行之前就需要一個單獨的編譯過程。源代碼被編譯器全面轉換成機器代碼或者中間代碼。例如,C和C++使用編譯器將源代碼直接轉換成機器碼。
執行速度:通常運行速度較快,因為代碼已經是編譯好的機器代碼,無需在運行時進行大量處理。
平臺依賴性:編譯出的可執行檔通常是平臺依賴的。這意味著為特定操作系統或硬體平臺編譯的程式不能在不同的系統上運行,除非重新編譯。
開發週期:可能需要更多的開發時間,因為編譯過程是單獨的步驟,並且可能需要調整和優化以支持不同的操作系統和硬體。
解釋型語言:
轉換過程:解釋型語言通常在程式運行時才逐行轉換源代碼。源代碼不是一次性全部編譯,而是由一個解釋器在執行時即時轉換。例如,Python和JavaScript通常被視為解釋型語言。
執行速度:可能運行速度較慢,因為每次運行程式時,源代碼都需要被解釋器轉換。即時編譯(JIT)技術可以提高解釋型語言的執行效率。
平臺獨立性:解釋型語言的程式更容易跨平臺運行,因為它們在不同的平臺上使用相應的解釋器執行相同的源代碼。
開發週期:對於快速原型開發和腳本任務來說,可能更快,因為它們允許開發者快速編寫並測試代碼,無需長時間的編譯過程。
現代開發實踐中,這兩種語言類型的界限可能變得模糊。例如,Java是一種通常被編譯成位元組碼的語言,然後在虛擬機上執行,既具有編譯型語言的一些特徵,也有解釋型語言的特徵。此外,許多現代解釋型語言使用JIT編譯技術來提高運行時性能。