1. 程式人生 > >Python學習(一)直譯器與編譯器區別

Python學習(一)直譯器與編譯器區別

高階語言不能直接被機器所理解執行,所以都需要一個翻譯的階段,

解釋型語言用到的是直譯器,編譯型語言用到的是編譯器。

編譯型語言通常的執行過程是:原始碼——前處理器——編譯器——目的碼——連結器——可執行程式。

某種意義上來說預處理事實上是一個附加的功能,C,PHP,都可以新增這種功能,其中,預處理指令多為標頭檔案包含,巨集定義等等。因為巨集定義的核心說白了就是一個字“換”,所以預處理就是提供一個程式執行的環境,舉個例子,就像星際裡蟲族要進行生產活動一定要先把那塊地區就行汙染腐化。

編譯器——目的碼就是把高階程式語言轉換成機器可以理解執行的機器語言。

連結器的功能開始理解前要先了解一點。標頭檔案在預處理過程中被編譯成一個個單獨的檔案,也就是庫檔案。而程式是另外的檔案,並不包含在庫檔案裡。所以這就需要一個“膠水”把程式和庫連線起來形成一個可執行檔案(Windows是EXE)。這就是連結器的作用。

直譯器理解就簡單了,把程式一行行的的理解,執行。首先讀一行程式碼,然後執行這一行程式碼的意思,接下來讀下一行程式碼,執行次行程式碼。一次迴圈往復。

編譯器則是讀入所有程式碼,打包成可執行檔案,執行。由於我們執行的一般都為編譯過後的可執行檔案,也就是執行的是機器語言(而且是IDE優化後的),所以執行速度要比解釋型語言快。