解釋和編譯的區別
1. 編譯和解釋的區別是什麼
程序編譯(compilation , compile)是指利用編譯程序從源語言編寫的源程序產生目標程序的過程。
程序解釋是高級語言翻譯程序的一種,它將源語言書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。
2. 解釋型語言和編譯型語言的區別是什麼
一、編譯型
編譯型語言:編譯型語言在執行之前要先經過編譯過程,編譯成為一個可執行的機器語言的文件,比如exe。因為翻譯只做一遍,以後都不需要翻譯,所以執行效率高。
編譯型語言的典型代表:C語言,C++。
編譯型語言的優缺點:執行效率高,缺點是跨平台能力弱,不便調試。
二、解釋型
解釋型語言:解釋性語言編寫的程序不進行預先編譯,以文本方式存儲程序代碼。執行時才翻譯執行。程序每執行一次就要翻譯一遍。
代表語言:python,JavaScript。
優缺點:跨平台能力強,易於調,執行速度慢。
編譯型與解釋型,兩者各有利弊
前者由於程序執行速度快,同等條件下對系統要求較低,因此像開發操作系統、大型應用程序、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言。
而一些網頁腳本、伺服器腳本及輔助開發介面這樣的對速度要求不高、對不同系統平台間的兼容性有一定要求的程序則通常使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB等等。
3. 程序的編譯與解釋有什麼區別
一 解釋和編譯的區別 解釋是讀一段代碼,解釋執行一段代碼。如果已經完成一段代碼的語法分析和語義分析並且生成了執行過程,但是不立即執行這個過程,而是把它們全部收集起來,連成一個大的執行過程,這就是編譯這也意味著01 相同一段代碼,每次解釋執行都要重復進行語法分析和語義分析,編譯執行省略了這個過程 02 解釋是交錯執行,完全按照程序「原始」的控制流走,編譯則有機會對整個程序進行流分析和優化 03 編譯後的代碼是「固定」的,解釋執行則可以在代碼運行時直接修改代碼和數據 二 解釋型語言和編譯型語言的區別 動態特性越多的語言,需要解釋的地方就越多,反之則越少。 特別要說一下,C語言和匯編是完全沒有動態特性的語言,所以幾乎所有語言的運行時系統,都是用C來寫的不過這一點上,解釋和編譯並沒有非常清晰的區別,動態特性也可以交給即時編譯器來處理
4. 關於「編譯型語言」和「解釋性語言」的區別
1、程序控制權不同:
對於解釋性語言而言,程序運行時的控制權在解釋器(jre,.net)而不再用於程序。編譯型語言對於編譯器而言,運行時的控制權在用戶程序。
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文件)。
5. 編譯程序和解釋程序有何區別
編譯程序能生成目標程序,而解釋程序不能。
6. 編譯程序和解釋程序有何區別
編譯程序能生成目標程序,而解釋程序不能。
7. 簡述「編譯」和「解釋」的區別
編譯:把程序轉化成為可被計算機內部識別並執行的代碼。或者說是生成可執行文件。
解釋:在程序中加上自己的注釋,以讓人易於理解。
8. 編譯和解釋的區別是什麼
編譯和解釋的區別是與計算機的交流方式不同、運行環境不同、運行速度不同。
一、與計算機的交流方式不同
編譯是將源程序翻譯成可執行的目標代碼,執行可執行程序文件,翻譯與執行是分開的。
解釋程序不產生目標代碼,它逐條地取出源程序中的語句,邊解釋邊執行,解釋器把源代碼文件邊解釋成機器語言邊交給CPU執行。
二、運行環境不同
編譯程序跨平台性不好,不同操作系統,調用底層的機器指令不同,需為不同平台生成不同的機器碼文件,編譯程序每次修改源代碼,都要重新編譯,生成機器碼文件。
解釋程序可跨平台使用,因為解釋器已經做好了對不同平台的交互處理,用戶寫的源代碼不需要再考慮差異性,源代碼所有平台都可以直接執行,解釋程序可以隨時修改,立刻生效,改完源代碼後,直接運行看效果。
三、運行速度不同
編譯程序執行速度快,因為你的程序代碼已經翻譯成了是計算機可以理解的機器語言。
解釋程序運行效率低,所有的代碼均需經過解釋器邊解釋變執行,速度比編譯型慢很多。
9. 「編譯方式」和「解釋方式」的區別
程序員編寫的程序現在一般都是用高級語言編寫的,如c/c++
以及面向對象的visual
系列;這樣編寫的程序計算機是不能直接執行的,因為計算機只能執行二進製程序。因此要經過一個源程序代碼翻譯成二進制的過程。計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過「翻譯程序」翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種「翻譯」通常有兩種方式,即編譯方式和解釋方式。
兩者的區別如下:
解釋方式:程序運行時,取一條指令,將其轉化為機器指令,再執行這條機器指令。這種方式每次運行程序時都要重新翻譯整個程序,效率較低,執行速度慢,如QB,不過現在很少再用這種低效的方式的設計語言了。
編譯方式:程序運行時之前,將程序的所有代碼編譯為機器代碼,再運行這個程序。然後每次執行的時候就可以直接執行這個翻譯好的二進制文件了,這樣的程序只需要翻譯一次,效率明顯要高很多,現在的大多數語言都是這種方式,網頁中的asp.net
採用的也是這種方式。
簡單的說,編譯就是全文翻譯,全部翻譯完才執行。解釋就相當於同聲翻譯,邊翻譯邊執行。