請簡述解釋性程式語言和編譯性程式語言的區別

2021-03-04 05:43:23 字數 3395 閱讀 4155

1樓:湖北優就業

對於語言本身復來說,各種程式語言制本質沒什麼不同。所謂的「解釋性」和「編譯」指的是執行機制上的不同。

解釋性語言是指它常用的執行機制是使用一個「直譯器」來執行,直譯器對於程式是一句一句「翻譯」成機器語言來執行,例如shell指令碼語言。

編譯型語言是指它常用的執行機制是使用一個「編譯器」來編譯成機器語言,然後你就可以直接執行(執行)這個編譯成的「可執行檔案」。例如c語言

你也可以為解釋性語言(如shell指令碼語言)寫個編譯器來編譯,這樣它就成了「編譯語言」;

你也可以為編譯型語言(如c語言)寫個直譯器來執行,這樣它就成了「解釋性語言」

解釋性語言和編譯型語言的區別與不同

2樓:育知同創教育

1.編譯型語言在程式執行之前,有一個單獨的編譯過程,將程式翻譯成機器語言,以後執行這個程式的時候,就不用再進行翻譯了。

2.解釋型語言,是在執行的時候將程式翻譯成機器語言,所以執行速度相對於編譯型語言要慢。

3.c/c++ 等都是編譯型語言,而java,c#等都是解釋型語言。

4.雖然java程式在執行之前也有一個編譯過程,但是並不是將程式編譯成機器語言,而是將它編譯成位元組碼(可以理解為一箇中間語言)。

在執行的時候,由jvm將位元組碼再翻譯成機器語言。

5.指令碼語言一般都有相應的指令碼引擎來解釋執行。 他們一般需要直譯器才能執行。

javascript,asp,php,perl,nuva都是指令碼語言。c/c++編譯、連結後,可形成獨立執行的exe檔案。

關於「編譯型語言」和「解釋性語言」的區別

3樓:匿名使用者

1、程式控制權不同:

對於解釋性語言而言,程式執行時的控制權在直譯器(jre,.***)而不再用於程式。編譯型語言對於編譯器而言,執行時的控制權在使用者程式。

2、執行速度不同:

一些網頁尾本,伺服器指令碼以及輔助開發介面這樣的對速度要求不高,對不同系統的相容性有一定要求的程式則通常使用解釋性語言,如java、javascript、vbscript、perl、python、ruby、matlab等等。

編譯語言由於程式執行速度快,同等條件下對系統的要求比較低,因此像開發作業系統、大型應用程式、資料庫系統等時都採用它,像c/c++,pascal/object pascal(delphi)等都是編譯型語言。

3、移植性不同:

解釋型語言,例如java語言,java程式首先通過編譯器編譯成class檔案,如果在windows平臺上執行,則通過windows平臺上的java虛擬機器(vm)進行解釋。如果執行在linux平臺上,則通過linux平臺上的java虛擬機器進行解釋執行。

所以說能跨平臺,前提是平臺上必須要有相匹配的java虛擬機器。如果沒有java虛擬機器,則不能進行跨平臺。

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

4樓:育知同創教育

解釋性語言和編譯型語言的區別與不同之處如下:

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

翻譯的方式有兩種:

一個是編譯

一個是解釋。

兩種方式只是翻譯的時間不同。

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

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

5樓:匿名使用者

編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把程式編譯成為機器語言的檔案,比如exe檔案,以後要執行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe檔案),因為翻譯只做了一次,執行時不需要翻譯,所以編譯型語言的程式執行效率高。

計算機不能直接理解高階語言,只能直接理解機器語言,所以必須要把高階語言翻譯成機器語言,計算機才能執行高階語言編寫的程式。 翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。

編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把程式編譯成為機器語言的檔案,比如exe檔案,以後要執行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe檔案),因為翻譯只做了一次,執行時不需要翻譯,所以編譯型語言的程式執行效率高,但也不能一概而論,部分解釋型語言的直譯器通過在執行時動態優化**,甚至能夠使解釋型語言的效能超過編譯型語言。 解釋則不同,解釋性語言的程式不需要編譯,省了道工序,解釋性語言在執行程式的時候才翻譯,比如解釋性basic語言,專門有一個直譯器能夠直接執行basic程式,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。

解釋是一句一句的翻譯。 編譯型與解釋型,兩者各有利弊。前者由於程式執行速度快,同等條件下對系統要求較低,因此像開發作業系統、大型應用程式、資料庫系統等時都採用它,像c/c++、pascal/object pascal(delphi)等都是編譯語言,而一些網頁尾本、伺服器指令碼及輔助開發介面這樣的對速度要求不高、對不同系統平臺間的相容性有一定要求的程式則通常使用解釋性語言,如java、javascript、vbscript、perl、python、ruby、matlab 等等。

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

6樓:匿名使用者

1.編譯型語言在程式執行之前,有一個單獨的編譯過程,將程式翻譯成機器語言,以後執行這個程式的時候,就不用再進行翻譯了。

2.解釋型語言,是在執行的時候將程式翻譯成機器語言,所以執行速度相對於編譯型語言要慢。

3.c/c++ 等都是編譯型語言,而java,c#等都是解釋型語言。

4.雖然java程式在執行之前也有一個編譯過程,但是並不是將程式編譯成機器語言,而是將它編譯成位元組碼(可以理解為一箇中間語言)。

在執行的時候,由jvm將位元組碼再翻譯成機器語言。

5.指令碼語言一般都有相應的指令碼引擎來解釋執行。 他們一般需要直譯器才能執行。

javascript,asp,php,perl,nuva都是指令碼語言。c/c++編譯、連結後,可形成獨立執行的exe檔案。

c語言程式設計問題,請高手解答,C語言問題!請高手解答!謝謝

include include include void to uppers char s int main char s 128 int flag,line,i scanf s s scanf d flag scanf d line if flag to uppers s 轉成大寫for i 0 ...

請大蝦用通俗易懂的語言解釋一下什麼事程式設計術語 應用程式程式設計介面API

比如絞肉機api,放進去肉塊,出來肉餡 又比如奶牛api,吃進去的是草,出來的是奶 你是一個應用程式,需要時就拿來絞肉機用用即可 你可以將api簡單地理解成函式,雖然不夠嚴謹,但是在高階語言中,api多數是以函式的形式存在的。api是什麼?不同的程式語言的api一樣的嗎?說的淺顯一點,我是新手 前面...

幾個C語言的簡單問題請高人程式設計

include stdio.h include math.h main if k 0 printf yes else printf no include stdio.h include math.h main if k 0 sum n k 0 printf d sum include stdio.h...