① 程序的編譯與解釋有什麼區別
一 解釋和編譯的區別 解釋是讀一段代碼,解釋執行一段代碼。如果已經完成一段代碼的語法分析和語義分析並且生成了執行過程,但是不立即執行這個過程,而是把它們全部收集起來,連成一個大的執行過程,這就是編譯這也意味著01 相同一段代碼,每次解釋執行都要重復進行語法分析和語義分析,編譯執行省略了這個過程 02 解釋是交錯執行,完全按照程序「原始」的控制流走,編譯則有機會對整個程序進行流分析和優化 03 編譯後的代碼是「固定」的,解釋執行則可以在代碼運行時直接修改代碼和數據 二 解釋型語言和編譯型語言的區別 動態特性越多的語言,需要解釋的地方就越多,反之則越少。 特別要說一下,C語言和匯編是完全沒有動態特性的語言,所以幾乎所有語言的運行時系統,都是用C來寫的不過這一點上,解釋和編譯並沒有非常清晰的區別,動態特性也可以交給即時編譯器來處理
② 編譯程序和解釋程序有何區別
編譯程序能生成目標程序,而解釋程序不能。
③ 編譯程序與解釋程序最大的差別是
首先它們都是翻譯程序,其主要區別是:解釋程序在翻譯源程序時是一句一句的讀入,一句句的解釋和執行;編譯程序是將源程序直接翻譯為目標程序,然後再執行目標程序的,其中,目標程序可以是機器語言或匯編語言。
④ 編譯程序和解釋程序的區別
編譯程序和解釋程序的區別是:
1、編譯是將源程序翻譯成可執行的目標代碼;解釋程序不產生目標代碼。
2、解釋程序可跨平台使用;編譯程序跨平台性不好。
3、解釋程序可以隨時修改,立刻生效;編譯程序不行。
4、解釋程序運行效率低;編譯程序執行速度快。
編譯是將源程序翻譯成可執行的目標代碼,翻譯沒斗與執行是分開的;而解釋是對源程序的翻譯與執行一次性完成,不生成可存儲的目標代碼。這只是表象,二者背後的最大區別是:對解釋執行而言,程序運行時的控制權在解釋器而不在用戶程序;對編譯執行而言,運行時的控制權在用戶程序。
解釋具有良好的動態特性和可移植性,比如在解釋執行時可以動態改變變數的類型、對程序進行修改以及在程序中插入良好的調試診斷信息等,而將解釋器移植到不同的系統上,則程序不用改動就可以在移植了解釋器的系統上運行。
同時解釋器也有很大的缺點,比如執行效率低,佔用空間大,因為不僅要給用戶程序分配空間,念察敗解釋器本身也佔用了寶貴的系統資源。
編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行仔顫時計算機可以直接以機器語言來運行此程序,速度很快。
而解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯後的程序運行的快的。
⑤ 計算機中:解釋程序與編譯程序:的相同點與不同點是什麼
編譯程序、解釋程序均是計算機語言處理程序。
其區別主要為:
解釋程序直接執行源程序或源程序的內部形式,一般是讀一句源程序,翻譯一句,執行一句,不產生目標代碼,如BASIC解釋程序。編譯程序是將高級語言書寫的源程序翻譯成與之等價的低級語言的目標程序。編譯程序與解釋程序最大的區別之一在於前者生成目標代碼,而後者不生成;此外,前者產生的目標代碼的執行速度比解釋程序的執行速度要快;後者人機交互好,適於初學者使用。
⑥ 編譯和解釋的區別是什麼
1.定義區別
①編譯原理旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。
②匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。
2.處理方式區別
①編譯過程與解釋挺像,區別就在於編譯是將所有的源代碼指令一次性成翻目標代碼並執行。
②匯編過程就是把匯編指令一對一地翻譯成01機器碼的過程。而採用這種處理方式的語言只有一類:匯編語言。
3.特點區別
①編譯語言的特點就是不需要解釋器的參與,所以運行比較快,但是編譯好的程序只能在當前平台運行,是個局限性。
②匯編語言是當今世界上歷史最早,應用最廣,功能最強大,運行速度最快的編程語言。但是匯編語言開發工期長,可讀性差,並且不能跨平台編程。
⑦ 編譯和解釋的區別
1、在編譯方式下,機器上運行的是與源程序等價的目標程序,源程序和編譯程序都不再參與目標程序的謹搏哪執行過程,而在解釋方祥碼式下,解釋程序和源程序(或某種等價表示)要參與到程序的運行過程中,運行程序銀芹的控制權在解釋程序。
2、解釋器翻譯源程序時不生成獨立的目標程序,而編譯器則將源程序翻譯成獨立的目標程序。
⑧ 「編譯方式」和「解釋方式」的區別是什麼
程序員編寫的程序現在一般都是用高級語言編寫的,如c/c++ 以及面向對象的visual 系列;這樣編寫的程序計算機是不能直接執行的,因為計算機只能執行二進製程序。因此要經過一個源程序代碼翻譯成二進制的過程。計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過「翻譯程序」翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種「翻譯」通常有兩種方式,即編譯方式和解釋方式。
兩者的區別如下:
解釋方式:程序運行時,取一條指令,將其轉化為機器指令,再執行這條機器指令。這種方式每次運行程序時都要重新翻譯整個程序,效率較低,執行速度慢,如QB,不過現在很少再用這種低效的方式的設計語言了。
編譯方式:程序運行時之前,將程序的所有代碼編譯為機器代碼,再運行這個程序。然後每次執行的時候就可以直接執行這個翻譯好的二進制文件了,這樣的程序只需要翻譯一次,效率明顯要高很多,現在的大多數語言都是這種方式,網頁中的asp.net 採用的也是這種方式。
簡單的說,編譯就是全文翻譯,全部翻譯完才執行。解釋就相當於同聲翻譯,邊翻譯邊執行。
⑨ 編譯執行和解釋執行的區別
一、主體不同
1、編譯執行:由編譯程序將目標代碼一次性編譯成目標程序,再由機器運行目標程序。
2、解釋執行:將源語言直接作為源程序輸入,解釋執行解釋一句後就提交計算機執行一句,並不形成目標程序。
二、優勢不同
1、編譯執行:相比解釋執行編譯執行效率高,佔用資源小,適合復雜程序
2、解釋執行:開發速度快,出現嚴重BUG的幾率小。
三、缺點不同
1、編譯執行:兼容性差,例如在windows平台上寫的編譯程序一般不可以在unix平台上運行。
2、解釋執行:解析需要時間,不生成目標程序而是一句一句的執行的方式會造成計算機資源的浪費,即執行效率低。