python---之編譯型語言和解釋型語言的區別

zxyhhjs2017發表於2018-06-05

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

計算機高階語言按程式的執行方式可以分為:編譯性和解釋性兩種

編譯型語言

編譯性的語言指使用專門的編譯器、針對特定平臺(作業系統)將某種高階語言原始碼一次性“翻譯”成該平臺硬體執行的機器碼(包括機器指令和運算元),幷包裝成該平臺所能識別的可執行性程式的格式,這個轉換過程稱為編譯(Compile)。編譯生成的可執行程式可以以脫離開發環境,在特定的平臺上獨立執行。

有些程式在編譯結束之後,還可能需要對其他編譯好的目的碼進行連結,即組裝兩個以上的目的碼模組生成最終的可執行程式,通過這種方式實現低層次的程式碼複用。

因為編譯型語言是一次性的編譯成機器碼,所以可以脫離開發環境獨立執行,而且通常執行效率較高;但因為編譯性語言的程式被編譯成特定平臺上的機器碼,因此編譯生成的可執行程式通常無法移植到其他平臺上執行;如果需要移植,則必須將原始碼複製到特定的平臺上,針對特定的平臺進行修改,至少也需要採用特定平臺上的編譯器重新編譯。
比如我們現在的C、C++、Objective-C、Pasca等高階語言都屬於編譯型語言。


解釋型語言

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

可以這樣認為:每次執行解釋型語言的程式都需要進行一次編譯,因此解釋型語言的程式執行效率通常較低,而且它不能脫離直譯器獨立執行。

但解釋性語言有一個優勢:跨平臺比較容易,只需提供特定平臺的直譯器即可,每個特定平臺上的直譯器負責將源程式解釋成特定平臺的機器指令即可。解釋性語言可以方便的實現源程式的移植,但這是以犧牲程式執行效率為代價的。

比如我們現在的Java、Ruby、Python等高階語言都屬於解釋型語言。


轉載:https://blog.csdn.net/zxnsirius/article/details/51453819

相關文章