解釋與編譯有什麼區別
A. 解釋和編譯有什麼區別
一、與計算機的交流方式不同
1、解釋程序不產生目標代碼,它逐條地取出源程序中的語句,邊解釋,邊執行;解釋器把源代碼文件邊解釋成機器語言邊交給CPU執行。
三、開發便捷性
1、解釋程序可以隨時修改,立刻生效,改完源代碼後,直接運行看效果
2、編譯程序每次修改源代碼,都要重新編譯,生成機器碼文件
四、運行速度
1、解釋程序運行效率低,所有的代碼均需經過解釋器邊解釋變執行,速度比編譯型慢很多
2、編譯程序執行速度快,因為你的程序代碼已經翻譯成了是計算機可以理解的機器語言。
B. 「編譯方式」和「解釋方式」的區別是什麼
程序員編寫的程序現在一般都是用高級語言編寫的,如c/c++ 以及面向對象的visual 系列;這樣編寫的程序計算機是不能直接執行的,因為計算機只能執行二進製程序。因此要經過一個源程序代碼翻譯成二進制的過程。計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過「翻譯程序」翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種「翻譯」通常有兩種方式,即編譯方式和解釋方式。
兩者的區別如下:
解釋方式:程序運行時,取一條指令,將其轉化為機器指令,再執行這條機器指令。這種方式每次運行程序時都要重新翻譯整個程序,效率較低,執行速度慢,如QB,不過現在很少再用這種低效的方式的設計語言了。
編譯方式:程序運行時之前,將程序的所有代碼編譯為機器代碼,再運行這個程序。然後每次執行的時候就可以直接執行這個翻譯好的二進制文件了,這樣的程序只需要翻譯一次,效率明顯要高很多,現在的大多數語言都是這種方式,網頁中的asp.net 採用的也是這種方式。
簡單的說,編譯就是全文翻譯,全部翻譯完才執行。解釋就相當於同聲翻譯,邊翻譯邊執行。
C. 解釋和編譯有什麼區別
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
編譯能產生exe文件,解釋也能嗎。
如果都能,那他們的exe文件有什麼區別
解析:
解釋(intepreter)和編譯(pile)的區別:
1. 解釋 -- 運行時必需用解釋器把程序一行一行執行, 運行比較慢, 因為是運行時才把程序解析並執行. 優點是移植性, 不同的機器只要有解釋器就可以運行相同的程序.
2. 編譯 -- 先把程序轉成 CPU 跟操作系統認識的機械碼, 執行程序就是直接執行機械碼, 所以速度比較快, 但因為是機械碼 (加上一些操作系統的 loader 所要的信息), 不同的 CPU 與操作系統並不能運行編譯後的程序
另外還有一種是半編譯的, 先把程序編譯成一種中間碼, 再在不同的機器運行解釋器解釋這種中間碼.
網頁上的 java 可以是解釋的或是中間碼的形式
解釋是讀一行解釋一行,然後再執行,執行完後,再讀下一行,然後再解釋一下再執行。
下次再執行時還要解釋。
編譯的話就是只要編譯一次,下次再執行是就不用再解釋了,相對來說速度較快。
D. 編譯執行和解釋執行的區別
一、主體不同
1、編譯執行:由編譯程序將目標代碼一次性編譯成目標程序,再由機器運行目標程序。
2、解釋執行:將源語言直接作為源程序輸入,解釋執行解釋一句後就提交計算機執行一句,並不形成目標程序。
二、優勢不同
1、編譯執行:相比解釋執行編譯執行效率高,佔用資源小,適合復雜程序
2、解釋執行:開發速度快,出現嚴重BUG的幾率小。
三、缺點不同
1、編譯執行:兼容性差,例如在windows平台上寫的編譯程序一般不可以在unix平台上運行。
2、解釋執行:解析需要時間,不生成目標程序而是一句一句的執行的方式會造成計算機資源的浪費,即執行效率低。
E. 編譯程序和解釋程序的區別
編譯程序和解釋程序的區別是:
1、編譯是將源程序翻譯成可執行的目標代碼;解釋程序不產生目標代碼。
2、解釋程序可跨平台使用;編譯程序跨平台性不好。
3、解釋程序可以隨時修改,立刻生效;編譯程序不行。
4、解釋程序運行效率低;編譯程序執行速度快。
編譯是將源程序翻譯成可執行的目標代碼,翻譯與執行是分開的;而解釋是對源程序的翻譯與執行一次性完成,不生成可存儲的目標代碼。這只是表象,二者背後的最大區別是:對解釋執行而言,程序運行時的控制權在解釋器而不在用戶程序;對編譯執行而言,運行時的控制權在用戶程序。
解釋具有良好的動態特性和可移植性,比如在解釋執行時可以動態改變變數的類型、對程序進行修改以及在程序中插入良好的調試診斷信息等,而將解釋器移植到不同的系統上,則程序不用改動就可以在移植了解釋器的系統上運行。
同時解釋器也有很大的缺點,比如執行效率低,佔用空間大,因為不僅要給用戶程序分配空間,解釋器本身也佔用了寶貴的系統資源。
編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快。
而解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯後的程序運行的快的。
F. 解釋和編譯的區別
解釋和編譯的區別如下:
1、讀音不同
解釋:讀音是jiě shì。
編譯:讀音是biān yì。
2、意思不同
解釋:意思是指在觀察的基礎上進行思考,合理地說明事物變化的原因,事物之間的聯系,或者是事物發展的規律。
編譯:編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。
編譯的詞法分析
詞法分析的任務是對由字元組成的單詞進行處理,從左至右逐個字元地對源程序進行掃描,產生一個個的單詞符號,把作為字元串的源程序改造成為單詞符號串的中間程序。執行詞法分析的程序稱為詞法分析程序或掃描器。
源程序中的單詞符號經掃描器分析,一般產生二元式:單詞種別;單詞自身的值。單詞種別通常用整數編碼,如果一個種別只含一個單詞符號,那麼對這個單詞符號,種別編碼就完全代表它自身的值了。若一個種別含有許多個單詞符號,那麼,對於它的每個單詞符號,除了給出種別編碼以外,還應給出自身的值。
詞法分析器一般來說有兩種方法構造:手工構造和自動生成。手工構造可使用狀態圖進行工作,自動生成使用確定的有限自動機來實現。
G. 編譯和解釋的區別是什麼
1.定義區別
①編譯原理旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。
②匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。
2.處理方式區別
①編譯過程與解釋挺像,區別就在於編譯是將所有的源代碼指令一次性成翻目標代碼並執行。
②匯編過程就是把匯編指令一對一地翻譯成01機器碼的過程。而採用這種處理方式的語言只有一類:匯編語言。
3.特點區別
①編譯語言的特點就是不需要解釋器的參與,所以運行比較快,但是編譯好的程序只能在當前平台運行,是個局限性。
②匯編語言是當今世界上歷史最早,應用最廣,功能最強大,運行速度最快的編程語言。但是匯編語言開發工期長,可讀性差,並且不能跨平台編程。
H. 編譯和解釋的區別是什麼
1.
編譯(compilation
,
compile)
,利用編譯程序從源語言編寫的源程序產生目標程序的過程。用編譯程序產生目標程序的動作。
編譯就是把高級語言變成計算機可以識別的2進制語言。
2.
解釋直譯語言由解釋器將代碼一句一句運行。
3.
理論上,任何編程語言都可以是編譯式,或直譯式的。它們之間的區別,僅與程序的應用有關。
I. 解釋型語言和編譯型語言的區別是什麼
解釋型語言和編譯型語言的區別是在於翻譯的時間點不同。編譯型語言是在代碼執行之前進行編譯,生成中間代碼文件。解釋型語言是在運行時進行及時解釋,並立即執行,當編譯器以解釋方式運行的時候,也稱之為解釋器。
計算機不能理解除任何機器語言之外的語言,所以必須把程序員所寫的代碼翻譯成機器語言才能執行程序。程序語言翻譯成機器語言的工具,被稱為翻譯器。
解釋型語言的特性
解釋型語言效率低,每執行一次都要進行翻譯。非獨立性,跨平台性好編譯型語言進行移植後要重新編譯,相對而言解釋型語言跨平台較容易。
同等條件下,編譯型語言對系統的條件要求比較低,像開發操作系統,大型應用程序,資料庫系統,則用編譯型語言。對不同平台兼容性有一定要求的程序通常使用解釋型語言。
J. 編譯程序和解釋程序有何區別
編譯程序能生成目標程序,而解釋程序不能。