編寫編譯程式
編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把程式編譯成為機器語言的檔案,比如exe檔案,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe檔案),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程式執行效率高。
編譯型語言和解釋型語言的區別
解釋性語言在運行程式的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程式,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。
編譯型與解釋型,兩者各有利弊
前者由於程式執行速度快,同等條件下對系統要求較低,因此像開發作業系統、大型應用程式、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網頁腳本、伺服器腳本及輔助開發接口這樣的對速度要求不高、對不同系統平台間的兼容性有一定要求的程式則通常使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。
編譯性語言不如解釋性語言跨平台性好
編譯性語言例如c語言:用c語言開發了程式後,需要通過編譯器把程式編譯成機器語言(即計算機識別的二進制檔案,因為不同的作業系統計算機識別的二進制檔案是不同的),所以c語言程式進行移植後,要重新編譯。(如windows編譯成ext檔案,linux編譯成erp檔案)。
解釋性語言,例如java語言,java程式首先通過編譯器編譯成class檔案,如果在windows平台上運行,則通過windows平台上的java虛擬機(VM)進行解釋。如果運行在linux平台上,則通過linux平台上的java虛擬機進行解釋執行。所以說能跨平台,前提是平台上必須要有相匹配的java虛擬機。如果沒有java虛擬機,則不能進行跨平台。
解釋型語言
解釋性語言編寫的程式不進行預先編譯,以文本方式存儲程式代碼。在發布程式時,看起來省了道編譯工序。但是,在運行程式的時候,解釋性語言必須 先解釋再運行。比如解釋性Basic語言,其專用的解釋器在執行Basic程式時,會逐條讀取解釋每個語句,這個其實就是一個編譯過程,然後再執行。一般來說,現有的解釋性語言都是採用的逐行解釋一句,執行一句這樣的方式來構建的。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。