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

計算機不能直接理解高級語言,只能直接理解機器語言,因此必需要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。javascript

翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不一樣。java

編譯性語言linux

編譯型語言寫的程序執行以前,須要一個專門的編譯過程,把程序編譯成爲機器語言的文件,好比exe文件,之後要運行的話就不用從新翻譯了,直接使用編譯的結果就好了(exe文件),由於翻譯只作了一次,運行時不須要翻譯,因此編譯型語言的程序執行效率高。c++

解釋性語言
  解釋則不一樣,解釋性語言的程序不須要編譯,省了道工序,解釋性語言在運行程序的時候才翻譯,好比解釋性java語言,專門有一個解釋器可以直接執行java程序,每一個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。
數據庫

腳本語言
  腳本語言是解釋性語言。腳本語言通常都有相應的腳本引擎來解釋執行。它們通常須要解釋器才能運行。因此只要系統上有相應語言的解釋程序就能夠作到跨平臺。腳本語言是一種解釋性的語言,例如vbscript,javascript,installshield script等等,它不象c\c++等能夠編譯成二進制代碼,以可執行文件的形式存在。
JAVA語言
  java語言是解釋性語言。java很特殊,java程序也須要編譯,可是沒有直接編譯稱爲機器語言,而是編譯稱爲字節碼,而後用解釋方式執行字節碼。Java既能夠被編譯,也能夠被解釋。經過編譯器,能夠把Java程序翻譯成一種中間代碼 - 稱爲字節碼 - 能夠被Java解釋器解釋的獨立於平臺的代碼。經過解釋器,每條Java字節指令被分析,而後在計算機上運行。只需編譯一次,程序運行時解釋執行。
  Java字節碼使「寫一次,處處運行」成爲可能。能夠在任何有Java編譯器的平臺上把Java程序編譯成字節碼。這個字節碼能夠運行在任何Java VM上。例如,同一個Java程序能夠運行在WindowsNT、Solaris和Macintosh上。
windows

編譯器與解釋器的區別服務器

       編譯型與解釋型,二者各有利弊。前者因爲程序執行速度快,同等條件下對系統要求較低,所以像開發操做系統、大型應用程序、數據庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網頁腳本、服務器腳本及輔助開發接口這樣的對速度要求不高、對不一樣系統平臺間的兼容性有必定要求的程序則一般使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。spa

編譯性語言 不如解釋性語言跨平臺性好?操作系統

        編譯性語言例如c語言:用c語言開發了程序後,須要經過編譯器把程序編譯成機器語言(即計算機識別的二進制文件,由於不一樣的操做系統計算機識別的二進制文件是不一樣的),因此c語言程序進行移植後,要從新編譯。(如windows編譯成ext文件,linux編譯成erp文件)。翻譯

        解釋性語言,例如java語言,java程序首先經過編譯器編譯成class文件,若是在windows平臺上運行,則經過windows平臺上的java虛擬機(VM)進行解釋。若是運行在linux平臺上,則經過linux平臺上的java虛擬機進行解釋執行。因此說能跨平臺,前提是平臺上必需要有相匹配的java虛擬機。若是沒有java虛擬機,則不能進行跨平臺。

相關文章
相關標籤/搜索