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


1. 編譯型語言的工作原理

屬於編譯型語言的有:C、C++、Delphi等,其中選取C語言為代表來說明。首先,C編程的基本策略是,用程序把源代碼文件轉換為可執行文件。

典型的C實現通過編譯和鏈接兩個步驟來完成這一過程:

  1.程序員使用文本編輯器創建源代碼文件

  2. 編譯器把源代碼翻譯成中間代碼(機器語言),並把結果放在目標代碼文件中

  3. 鏈接器把中間代碼和系統的標准啟動代碼、庫函數代碼合並成可執行文件,並交由CPU去執行

*科普:

  1. 啟動代碼,充當着程序和操作系統之間的接口,不同操作系統對應不同的啟動代碼,因為這些系統處理程序的方式不同。

  2. 庫函數代碼,為C標准庫中的函數,幾乎所有的C程序都要使用。例如,example.c中用了printf()函數,目標代碼文件並不包含該函數的代碼,它只包含了使用printf()函數的指令。printf()函數真正的代碼儲存在另一個被稱為庫的文件中。庫文件中有許多函數的目標代碼。

 

圖1 編譯器和鏈接器

 

2. 解釋型語言的工作原理

屬於解釋型語言的有:Python、JavaScript 、 Perl 、Shell等,其中選取Python為代表來說明。首先,Python編程的基本策略是,用程序把源代碼文件一行一行地轉換為可執行代碼。

典型的Python實現通過解釋這個步驟來完成這一過程:

  1.程序員使用文本編輯器創建源代碼文件

  2. 解釋器從上到下逐一讀取源代碼,讀取一行,翻譯一行,並把翻譯結果(機器語言)交由CPU去執行,以此往復

圖2 解釋器

3. 總結

1. 從執行速度而言,編譯型語言更快。

  編譯型語言執行的時候,CPU可直接讀取可執行代碼(機器語言),速度很快。

  解釋型語言執行的時候,需要解釋器翻譯一行,CPU執行一行,速度相對較慢。

2. 從跨平台而言,解釋型語言更便利。

  編譯型語言,不僅要根據不同CPU安裝對應編譯器,還需要根據不同操作系統選用應不同啟動代碼,不便利。

  解釋型語言,僅需要根據不同操作系統安裝對應解釋器,十分便利。

 

參考文獻:

[1]Stephen Prata.C Primer Plus[M].(第6版).北京:人民郵電出版社,2016:10-11.

[2]黑馬程序員-.Python教程_600集Python從入門到精通教程[DB].Bilibili,2017.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM