編譯型語言和解釋型語言的差別
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.