1. 程式人生 > >詳解編譯型語言和解釋型語言的區別

詳解編譯型語言和解釋型語言的區別

我們常用的高階語言有很多種,比較出名的有C\C++、Python、PHP、Go、Pascal等。而這些語言根據執行的方式不同,大體分為兩種:編譯型語言和解釋型語言

其中,編譯型語言包括C\C++、Pascal、Go等。這裡說的編譯是指在應用源程式執行之前,就將程式原始碼編譯成組合語言,然後進一步根據軟硬體環境"翻譯"成目標檔案。一般稱完成編譯工作的工具為編譯器。而解釋型語言,在程式執行時才被“翻譯”為機器語言。但是執行一次“翻譯”一次,所以執行效率較低。直譯器的工作就是解釋型語言中,負責“翻譯”原始碼的程式

我們對編譯型語言與解釋型語言的區別的理解,立足於原始碼被編譯成目標平臺CPU指令的時機

。對於編譯型語言,編譯結果已經是針對當前CPU體系的指令;而解釋型語言,需要先編譯成中間程式碼,再經由該解釋型語言的特定虛擬機器,翻譯成特定CPU體系的指令被執行。解釋型語言是在執行過程中,翻譯為目標平臺的指令。常說解釋型語言“慢”,主要也是慢在這裡

總結: 編譯型語言與解釋型語言的區別的理解立足原始碼被編譯成目標平臺CPU指令的時機編譯型:執行前.編譯結果就已經是機器語言 解釋型:執行過程中,才翻譯成機器語言,執行一次“翻譯”一次 更深的的提一下;到AST生成,兩者的過程都很類似,但是AST之後就開始產生差異了.