解釋型語言

解釋型語言

相對於編譯型語言存在的,原始碼不是直接翻譯成機器語言,而是先翻譯成中間代碼,再由解釋器對中間代碼進行解釋運行。比如Python/JavaScript / Perl /Shell等都是解釋型語言。 解釋型語言:程式不需要編譯,程式在運行時才翻譯成機器語言,每執 行一次都要翻譯一次。因此效率比較低。比如Basic語言,專門有一個解釋器能夠直接執行Basic程 序,每個語句都是執行的時候才翻譯。(在運行程式的時候才翻譯,專門有一個解釋器去進行翻譯,每個語句都是執行的時候才翻譯。效率比較低,依賴解釋器,跨 平台性好.)

基本信息

兩種方式

計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程式。

一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把程式編譯成為機器語言的檔案,比如exe檔案,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe檔案),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程式執行效率高,但也不能一概而論,部分解釋型語言的解釋器通過在運行時動態最佳化代碼,甚至能夠使解釋型語言的性能超過編譯型語言。

解釋則不同,解釋性語言的程式不需要編譯,省了道工序,解釋性語言在運行程式的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程式,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。解釋是一句一句的翻譯。

編譯型與解釋型,兩者各有利弊

前者由於程式執行速度快,同等條件下對系統要求較低,因此像開發作業系統、大型應用程式、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網頁腳本、伺服器腳本及輔助開發接口這樣的對速度要求不高、對不同系統平台間的兼容性有一定要求的程式則通常使用解釋性語言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

但隨著硬體的升級和設計思想的變革,編譯型和解釋型語言越來越籠統,主要體現在一些新興的高級語言上,而解釋型語言的自身特點也使得編譯器廠商願意花費更多成本來最佳化解釋器,解釋型語言性能超過編譯型語言也是必然的。

編譯型語言

編譯型語言:程式在執行之前需要一個專門的編譯過程,把程式編譯成 為機器語言的檔案,運行時不需要重新翻譯,直接使用編譯的結果就行了。程式執行效率高,依賴編譯器,跨平台性差些。如C、C++、Delphi等.

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

解釋性語言在運行程式的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程式,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。

編譯型與解釋型,兩者各有利弊

前者由於程式執行速度快,同等條件下對系統要求較低,因此像開發作業系統、大型應用程式、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網頁腳本、伺服器腳本及輔助開發接口這樣的對速度要求不高、對不同系統平台間的兼容性有一定要求的程式則通常使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

編譯性語言不如解釋性語言跨平台性好

編譯性語言例如c語言:用c語言開發了程式後,需要通過編譯器把程式編譯成機器語言(即計算機識別的二進制檔案,因為不同的作業系統計算機識別的二進制檔案是不同的),所以c語言程式進行移植後,要重新編譯。(如windows編譯成ext檔案,linux編譯成erp檔案)。

解釋性語言,例如java語言,java程式首先通過編譯器編譯成class檔案,如果在windows平台上運行,則通過windows平台上的java虛擬機(VM)進行解釋。如果運行在linux平台上,則通過linux平台上的java虛擬機進行解釋執行。所以說能跨平台,前提是平台上必須要有相匹配的java虛擬機。如果沒有java虛擬機,則不能進行跨平台。

相關詞條

相關搜尋

熱門詞條

聯絡我們