⑴ 編譯程序和解釋程序有何區別
編譯程序能生成目標程序,而解釋程序不能。
⑵ 「編譯方式」和「解釋方式」的區別
程序員編寫的程序現在一般都是用高級語言編寫的,如c/c++ 以及面向對象的visual 系列;這樣編寫的程序計算機是不能直接執行的,因為計算機只能執行二進製程序。因此要經過一個源程序代碼翻譯成二進制的過程。計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過「翻譯程序」翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種「翻譯」通常有兩種方式,即編譯方式和解釋方式。
兩者的區別如下:
解釋方式:程序運行時,取一條指令,將其轉化為機器指令,再執行這條機器指令。這種方式每次運行程序時都要重新翻譯整個程序,效率較低,執行速度慢,如QB,不過現在很少再用這種低效的方式的設計語言了。
編譯方式:程序運行時之前,將程序的所有代碼編譯為機器代碼,再運行這個程序。然後每次執行的時候就可以直接執行這個翻譯好的二進制文件了,這樣的程序只需要翻譯一次,效率明顯要高很多,現在的大多數語言都是這種方式,網頁中的asp.net 採用的也是這種方式。
簡單的說,編譯就是全文翻譯,全部翻譯完才執行。解釋就相當於同聲翻譯,邊翻譯邊執行。
⑶ 編譯執行和解釋執行的區別
一、主體不同
1、編譯執行:由編譯程序將目標代碼一次性編譯成目標程序,再由機器運行目標程序。
2、解釋執行:將源語言直接作為源程序輸入,解釋執行解釋一句後就提交計算機執行一句,並不形成目標程序。
二、優勢不同
1、編譯執行:相比解釋執行編譯執行效率高,佔用資源小,適合復雜程序
2、解釋執行:開發速度快,出現嚴重BUG的幾率小。
三、缺點不同
1、編譯執行:兼容性差,例如在windows平台上寫的編譯程序一般不可以在unix平台上運行。
2、解釋執行:解析需要時間,不生成目標程序而是一句一句的執行的方式會造成計算機資源的浪費,即執行效率低。
⑷ 編譯方式和解釋方式的根本區別是什麼
計算機內部運行時所能識別的語言是機器語言即0和1,我們普通編的程序或網站網頁都是用人能理解的工具編輯的源程序代碼,這種代碼電腦是不能直接識別和運行的。需要進行轉換成機器能識別的代碼。轉換過程有兩種形式。編譯方式和解釋方法。
編譯方式,就是把需要運行的源代碼通過工具一次性編譯成機器代碼如我們常見的文件名後.exe或.com的這種類型,電腦運行時直接運行編譯過的程序,速度運行快.
解釋方式:源程序代碼文件可能很很多,很長,每次程序運行時.都需要一個文件、一句一句調入電腦然後翻譯成機器代碼,再運行,時間長\運行速度慢。如現在網站常用的.asp就是這種格式。
⑸ java中編譯的意思,解釋的意思。
Java是編譯的,因為他把源代碼變成了位元組碼,而不是每次都解釋源代碼。
Java是解釋的。因為位元組碼是被JVM負責執行,而不是真正的二進制碼!
⑹ 編譯執行和解釋執行有什麼區別
編譯執行就像你買的《C Primer》中文版,譯者全部翻譯完(編寫代碼),拿到出版社去(編譯器),編輯們校對沒有發現錯別字(編譯),然後出版給你看,只要出版社(編譯器)工作正常,那麼就可以認為書的內容肯定沒有錯(可以正確執行);
解釋執行就像你去聽報告,老外一邊講(代碼),同聲傳譯(解釋器)一邊翻給你聽(解釋執行),如果哪一句老外講錯了(代碼出錯),同聲傳譯才卡殼,但是前面已經翻譯出去的,肯定是沒啥問題(部分正常執行了);
這么說你理解了沒有?編譯執行效率高,但靈活性差(任何修改都要重編譯),代碼保密性好;解釋執行效率低一點(這是以前的說法,現代解釋器的效率也可以非常高),靈活性好,代碼保密性差;
還有一種介於兩者之間的執行方式,半編譯執行,像大名鼎鼎的Java和C#等等,就是這種方式,是實現跨平台的優良解決方案。
⑺ 編譯和解釋的區別是什麼
編譯(compilation , compile) ,利用編譯程序從源語言編寫的源程序產生目標程序的過程。用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言。
解釋直譯語言由解釋器將代碼一句一句運行。
理論上,任何編程語言都可以是編譯式,或直譯式的。它們之間的區別,僅與程序的應用有關。
⑻ 編譯程序和解釋程序都是什麼意思
1、編譯程序是把用高級程序設計語言或計算機匯編語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序,屬於採用生成性實現途徑實現的翻譯程序。編譯程序以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出;編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
2、解釋程序是高級語言翻譯程序的一種,它將源語言書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。
(8)編譯解釋擴展閱讀:
編譯程序的實現演算法較為復雜。這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系;同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。但是,由於高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用於翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。
⑼ 解釋 編譯和編譯 匯編的區別是什麼
解釋和編譯針對的是高級語言的。是高級語言轉換成機器代碼的方式。編譯指的是一次性將程序代碼給轉換成機器代碼,這樣做好處是編譯之後的可執行程序方便移植,可以優化程序代碼,並且執行效率要比解釋語言的高!解釋是指邊解釋邊運行,解釋一條語句便執行一條。顯然這樣的程序執行效率是比較低的。比如C/C++用的是編譯,而basic用的是解釋。JAVA既用到解釋,又用到編譯。而匯編是一種低級程序設計語言,直接操縱底層硬體。是在機器語言(0,1代碼串)的基礎上採用助記符的方式發展而來的。很多病毒都是通過匯編語言寫的。用匯編編寫的程序執行效率非常高!只是不方便寫程序。匯編語言是低級語言,沒有語法,就是一條條機器指令的助記符而已,所以匯編的時候不需要語法分析。編譯時把高級語言處理成機器指令的過程,編譯的時候需要做詞法分析和語法分析,然後是代碼生成。