天天看點

編譯型語言和解釋型語言的簡單介紹

一、編譯型語言

  編譯型語言是指使用專門的編譯器,針對特定平台(作業系統)将某種進階語言源代碼一次性“翻譯”成可被該平台硬體執行的機器碼(包括機器指令和操作數),并包裝成該平台所能識别的可執行性程式的格式,這個轉換過程稱為“編譯”。編譯生成的可執行性程式可以脫離開發環境,在特定的平台上獨立運作。

  因為編譯型語言是一次性低編譯成機器碼,是以可以脫離開發環境獨立運作,而且通過運作效率較高;但因為編譯型語言的程式被編譯成特定平台上的機器碼,因為編譯生成的可執行性程式通常無法移植到其他平台上運作;如果需要移植,則必須将源代碼複制到特定平台上,針對特定平台進行修改,至少也需要采用特定平台上的編譯器重新編譯。

二、解釋型語言

  解釋性語言是指使用專門的解釋器對源程式逐行解釋成特定平台的機器碼并立即執行的語言。解釋性語言通常不會進行整體性的編譯和連結處理,解釋型語言相當于把編譯型語言中的編譯和解釋過程混合到一起同時完成。

  可以認為:每次執行解釋型語言的程式都需要進行一次編譯,是以解釋型語言的程式運作效率通常較低,而且不能脫離解釋器獨立運作。但解釋型語言有一個優勢:跨平台比較容易,隻需提供特定平台的解釋器即可,每個特定平台上的解釋器負責将源程式解釋成特定平台的機器指令即可。解釋型語言可以友善地實作源程式級的移植,但這是以犧牲程式執行效率為代價的。

  個人總結:編譯型語言一次性将源碼進行編譯完成并生成可執行性程式(比如.exe程式);解釋型語言逐行進行編譯并且解釋執行(比如解釋JavaScript源碼從上往下逐條解釋執行)。

  

編譯型語言和解釋型語言的簡單介紹