解釋程序需要編譯嗎
首先,匯編語言是一種語言,一種低級語言,和c,c++,vb......是一樣的,和編譯、解釋不是一個概念;
關於解釋程序
和編譯程序的解釋和關系如下:
a、解釋程序
所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如basic)書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。這種工作方式非常適合於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。這的確是很方便的,很適合於一些小型機的計算問題。但解釋程序執行速度很慢,例如源程序中出現循環,則解釋程序也重復地解釋並提交執行這一組語句,這就造成很大浪費。
b、編譯程序
這是一類很重要的語言處理程序,它把高級語言(如fortran、cobol、pascal、c等)源程序作為輸入,進行翻譯轉換,產生出機器語言的目標程序,然後再讓計算機去執行這個目標程序,得到計算結果。
編譯程序工作時,先分析,後綜合,從而得到目標程序。所謂分析,是指詞法分析和語法分析;所謂綜合是指代碼優化,存儲分配和代碼生成。為了完成這些分析綜合任務,編譯程序採用對源程序進行多次掃描的辦法,每次掃描集中完成一項或幾項任務,也有一項任務分散到幾次掃描去完成的。下面舉一個四遍掃描的例子:第一遍掃描做詞法分析;第二遍掃描做語法分析;第三遍掃描做代碼優化和存儲分配;第四遍掃描做代碼生成。
值得一提的是,大多數的編譯程序直接產生機器語言的目標代碼,形成可執行的目標文件,但也有的編譯程序則先產生匯編語言一級的符號代碼文件,然後再調用匯編程序進行翻譯加工處理,最後產生可執行的機器語言目標文件。
在實際應用中,對於需要經常使用的有大量計算的大型題目,採用招待速度較快的編譯型的高級語言較好,雖然編譯過程本身較為復雜,但一旦形成目標文件,以後可多次使用。相反,對於小型題目或計算簡單不太費機時的題目,則多選用解釋型的會話式高級語言,如basic,這樣可以大大縮短編程及調試的時間。
『貳』 程序語言中編譯,解釋,編輯的區別
首先說編輯,這個一般指的是編輯高級語言代碼,也就人能夠看懂的計算機語言,如JAVA,C,C#等等,總之就是人通過學習語法規則就能夠理解其邏輯過程的語言都算高級語言。編輯就是指的編寫這樣的代碼。
我們知道,計算機是無法讀懂高級語言的,那麼就需要編譯器把高級語言轉換成計算機可以運行的機器語言,就是一般的0101010001的二進制代碼。
高級語言翻譯為計算機能讀懂的機器語言的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。程序執行之前,需要一個專門的編譯過程(跟計算機語言的種類有關,比如C就是這樣),把程序編譯成為機器語言的文件,比如WINDIOWS系統下的exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件)。
解釋則不同,這類語言寫的程序不需要編譯(比如php),省了這道工序,語言在運行程序的時候才翻譯,比如解釋性php語言,專門有一個解釋器能夠直接執行php程序,每個語句都是執行的時候才翻譯,然後給計算機執行。
那麼為什麼要分為了兩種呢,因為編譯型語言一經編輯,其對系統的要求就定死了,比如平台,硬體類型等,已經編譯為機器代碼了,就只能在同類機器上運行。同時因為其只編譯一次,執行時不需要編譯,所以一般效率高。
解釋型的就不同,由於語言是在執行時被翻譯的,所以解釋器能夠根據當前的系統平台,硬體情況實時生成機器語言用於運行,所以,其從一個系統移植到另一個系統就很容易。但是一般的,因為他每次運行都要翻譯,所以一般效率較低。
關於他們的效率不一定的,有一些的解釋型的語言運行效率不比編譯型的低,因為他實時的對語言進行優化,提升了運行效率,主要看解釋器的性能有多強。
還有一點就是編譯型語言適合大量的復制進行商業活動,因為一旦編譯成機器語言,人就看不懂了。所以代碼泄露的可能很低,而解釋型的,復制時需要直接復制源代碼(既高級語言)這樣獲得的人都能查看其源代碼並通過編輯器修改,這樣是不利於版權,技術的保護的。
大致上就是這樣。
『叄』 解釋型語言源程序需經什麼解釋執行
所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如BASIC)書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。
就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。這種工作方式非常適合於人通過終端設備與計算機會話,如在終端上打一條
解釋型語言:程序不需要編譯,程序在運行時才翻譯成機器語言,每執 行一次都要翻譯一次。因此效率比較低。比如Basic語言,專門有一個解釋器能夠直接執行Basic程 序,每個語句都是執行的時候才翻譯。(在運行程序的時候才翻譯,專門有一個解釋器去進行翻譯,每個語句都是執行的時候才翻譯。效率比較低,依賴解釋器,跨平台性好。)
『肆』 計算機中,解釋程序與編譯程序的區別是什麼
編譯程序是整體編譯完了,再一次性執行。
而解釋程序是一邊解釋,一邊執行。
解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。望採納!
『伍』 編譯程序和解釋程序都是什麼意思
1、編譯程序是把用高級程序設計語言或計算機匯編語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序,屬於採用生成性實現途徑實現的翻譯程序。編譯程序以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出;編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
2、解釋程序是高級語言翻譯程序的一種,它將源語言書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。
(5)解釋程序需要編譯嗎擴展閱讀:
編譯程序的實現演算法較為復雜。這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系;同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。但是,由於高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用於翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。
『陸』 編譯程序和解釋程序有何區別
編譯程序能生成目標程序,而解釋程序不能。
『柒』 計算機中解釋程序什麼意思!在線等答案!!!
解釋程序無需編譯即可運行,主要是些腳本類,如如下代碼,你新建一個記事本編輯後保存後綴為.vbs,然後雙擊運行就可以,不需要通過編譯器編譯
Dim a,b
a=0
b=0
Do while a<=100
b=b+a
a=a+1
Loop
MsgBox "1~100累加的和為:"&b
『捌』 編譯程序和解釋程序有何區別
編譯程序是整體編譯完了,再一次性執行。
而解釋程序是一邊解釋,一邊執行。
解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。
『玖』 為什麼高級程序語言需要編譯程序
計算機語言是人與計算機之間交流的媒介,其種類非常多,但大體上分為機器語言、匯編語言、高級語言三大類。
計算機不能直接理解高級語言,只能直接理解機器語言,因此必須將高級語言翻譯成機器語言,翻譯的過程分為兩種,一種是解釋,一種是編譯。兩種方式的區別在於翻譯的時間,編譯是在程序運行之前,需要一個專門的過程,將程序編譯成為機器語言的文件,比如EXE文件,以後要運行的話就不用再重新編譯了,直接使用之前的編譯結果就行了,因為只翻譯一次,運行時不需要再翻譯,所以編譯型語言的程序執行效率高。
解釋性語言則不同,解釋性語言不需要編譯,其程序在運行時才翻譯,每個語句都是執行時才翻譯。這樣解釋性語言每執行一次就要翻譯一次,其執行效率則相對較低。
另外,編譯型語言以二進制形式保存,源代碼不可見;解釋性語言以代碼形式保存。
『拾』 解釋和編譯有什麼區別
一、與計算機的交流方式不同
1、解釋程序不產生目標代碼,它逐條地取出源程序中的語句,邊解釋,邊執行;解釋器把源代碼文件邊解釋成機器語言邊交給CPU執行。
三、開發便捷性
1、解釋程序可以隨時修改,立刻生效,改完源代碼後,直接運行看效果
2、編譯程序每次修改源代碼,都要重新編譯,生成機器碼文件
四、運行速度
1、解釋程序運行效率低,所有的代碼均需經過解釋器邊解釋變執行,速度比編譯型慢很多
2、編譯程序執行速度快,因為你的程序代碼已經翻譯成了是計算機可以理解的機器語言。