1、匯編程序
把匯編語言書寫的程序翻譯成與之等價的機器語言程序的翻譯程序。匯編程序輸入的是用匯編語言書寫的源程序,輸出的是用機器語言表示的目標程序。匯編語言是為特定計算機或計算機系列設計的一種面向機器的語言,由匯編執行指令和匯編偽指令組成。
採用匯編語言編寫程序雖不如高級程序設計語言簡便、直觀,但是匯編出的目標程序佔用內存較少、運行效率較高,且能直接引用計算機的各種設備資源。它通常用於編寫系統的核心部分程序,或編寫需要耗費大量運行時間和實時性要求較高的程序段。
2、解釋程序
解釋程序是一種語言處理程序,在詞法、語法和語義分析方面與編譯程序的工作原理基本相同,但在運行用戶程序時,它直接執行源程序或源程序的內部形式(中間代碼)。因此,解釋程序並不產生目標程序,這是它和編譯程序的主要區別。
3、編譯程序
編譯程序也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。
它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
(1)編譯代碼和匯編擴展閱讀:
工作過程
1、匯編程序
輸入匯編語言源程序。檢查語法的正確性,如果正確,則將源程序翻譯成等價的二進制或浮動二進制的機器語言程序,並根據用戶的需要輸出源程序和目標程序的對照清單;如果語法有錯,則輸出錯誤信息,指明錯誤的部位、類型和編號。最後,對已匯編出的目標程序進行善後處理。
2、解釋程序
由總控程序完成初始化工作。依次從源程序中取出一條語句進行語法檢查,如有錯,輸出錯誤信息;如果通過了語法檢查,則根據語句翻澤成相應的指令並執行它。檢查源程序是否已經全部解釋執行完畢,如果未完成則繼續解釋並執行下一條語句,直到全部語句都處理完畢。
3、編譯程序
先進行詞法分析與語法分析,然後生成中間代碼,接著對程序進行多種等價變換來代碼優化,最後生成目標代碼。
❷ 什麼是匯編程序,編譯程序,解釋程序分別說明他們的功能
【匯編程序】:把匯編語言書寫的程序翻譯成與之等價的機器語言程序的翻譯程序。
【編譯程序】:把用高級程序設計語言書寫的源程序,翻譯成等價的計算機匯編語言或機器語言的目標程序的翻譯程序。
【解釋程序】:對源程序邊解釋翻譯成機器代碼邊執行的高級語言程序。
高級語言的程序的執行的途徑:
1)源程序(高級語言)->【編譯程序】->目標程序(匯編語言)->【匯編程序】->目標程序(機器語言)->計算結果
2)源程序(高級語言)->【編譯程序】->目標程序(機器語言)->計算結果
3)源程序(高級語言)->【解釋程序】(逐條讀出源程序中的語句並解釋執行,即在解釋程序的執行過程中並不產生目標程序)->計算結果
❸ 匯編器和編譯器有什麼區別
匯編器(比如MASM)全稱是匯編編譯器,用來編譯匯編語言的。匯編語言的大部分命令都和機器碼一一對應,而高級語言和匯編的偽指令是不和機器碼一一對應的
,因此從某種意義上說,匯編碼就相當於機器碼。
編譯器的作用是,將源文件(.c/.cpp/.pas等)轉換為目標代碼(.obj/.dcu等)。這是已經是二進制代碼了。
最後由連接器(Linker),將目標代碼連接起來,這樣就形成了可執行文件
❹ 什麼是匯編程序和編譯程序有什麼區別
首先,簡介一下計機原理,假如有一個由磁粉組成的硬碟,那麼改變磁粉的排列,並通電,將引發電流大小的變化,這就是計機的數據來源。
那麼,查看磁粉是難以看見的,間接的表示就是:用一個如winhex的軟體打開,裡面的十六進制數就間接說明了磁粉的排列物理狀況。同樣,手動改磁粉即使生效,也未必「有用」。正如你所想,沒錯,既然電腦這機器這么麻煩,但它有人買,因為有鍵盤。一台正常的電腦由「固化」「程序」(bios)硬體去啟用主板上的各個元件,再拿個硬碟放操作系統。自然有辦法寫入數據了。
好了,回歸正題,所謂匯編,就是可以從那些有效的十六進制數據得出的東東,比如「b4....」在某一場合表示mov ......,於是乎,對照主板商等給出的文檔,想進行編寫一個程序,那麼就「mov.......」什麼的對著「b4........」什麼的堆進扇區就行了。編譯程序,動詞來說的話,是一個動作,不是程序,匯編程序是一個程序,名詞來說的話,風馬牛不相干,因為根據上述原理,把匯編代碼或c代碼轉成有效的「磁粉」數據,這就是一個編譯的過程,結果出來的就是編譯程序。
❺ 什麼是編譯程序和匯編程序
編譯程序是把用高級程序設計語言或計算機匯編語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序,屬於採用生成性實現途徑實現的翻譯程序。編譯程序以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出;編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
匯編程序是指把匯編語言書寫的程序翻譯成與之等價的機器語言程序的翻譯程序,是為特定計算機或計算機系列設計的一種面向機器的語言,由匯編執行指令和匯編偽指令組成。匯編程序輸入的是用匯編語言書寫的源程序,輸出的是用機器語言表示的目標程序。採用匯編語言編寫程序雖不如高級程序設計語言簡便、直觀,但是匯編出的目標程序佔用內存較少、運行效率較高,且能直接引用計算機的各種設備資源。它通常用於編寫系統的核心部分程序,或編寫需要耗費大量運行時間和實時性要求較高的程序段。匯編程序主要有簡單匯編程序、模塊匯編程序、條件匯編程序、宏匯編程序、高級匯編程序幾種。
❻ 編譯和匯編的區別是什麼
1.定義區別
①編譯原理旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。
②匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。
2.處理方式區別
①編譯過程與解釋挺像,區別就在於編譯是將所有的源代碼指令一次性成翻目標代碼並執行。
②匯編過程就是把匯編指令一對一地翻譯成01機器碼的過程。而採用這種處理方式的語言只有一類:匯編語言。
3.特點區別
①編譯語言的特點就是不需要解釋器的參與,所以運行比較快,但是編譯好的程序只能在當前平台運行,是個局限性。
②匯編語言是當今世界上歷史最早,應用最廣,功能最強大,運行速度最快的編程語言。但是匯編語言開發工期長,可讀性差,並且不能跨平台編程。
❼ 解釋 編譯和編譯 匯編的區別是什麼
解釋和編譯針對的是高級語言的。是高級語言轉換成機器代碼的方式。編譯指的是一次性將程序代碼給轉換成機器代碼,這樣做好處是編譯之後的可執行程序方便移植,可以優化程序代碼,並且執行效率要比解釋語言的高!解釋是指邊解釋邊運行,解釋一條語句便執行一條。顯然這樣的程序執行效率是比較低的。比如C/C++用的是編譯,而basic用的是解釋。java既用到解釋,又用到編譯。而匯編是一種低級程序設計語言,直接操縱底層硬體。是在機器語言(0,1代碼串)的基礎上採用助記符的方式發展而來的。很多病毒都是通過匯編語言寫的。用匯編編寫的程序執行效率非常高!只是不方便寫程序。匯編語言是低級語言,沒有語法,就是一條條機器指令的助記符而已,所以匯編的時候不需要語法分析。編譯時把高級語言處理成機器指令的過程,編譯的時候需要做詞法分析和語法分析,然後是代碼生成。
❽ 匯編和編譯程序的區別急
匯編程序是將匯編語言(低級語言)翻譯成二進制機器指令的程序
編譯程序是將高級語言(java,c++)翻譯成二進制機器指令的程序
❾ 編譯程序和解釋程序,匯編程序有什麼區別
首先,匯編語言是一種語言,一種低級語言,和c,c++,vb......是一樣的,和編譯、解釋不是一個概念;
關於解釋程序
和編譯程序的解釋和關系如下:
a、解釋程序
所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如basic)書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。這種工作方式非常適合於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。這的確是很方便的,很適合於一些小型機的計算問題。但解釋程序執行速度很慢,例如源程序中出現循環,則解釋程序也重復地解釋並提交執行這一組語句,這就造成很大浪費。
b、編譯程序
這是一類很重要的語言處理程序,它把高級語言(如fortran、cobol、pascal、c等)源程序作為輸入,進行翻譯轉換,產生出機器語言的目標程序,然後再讓計算機去執行這個目標程序,得到計算結果。
編譯程序工作時,先分析,後綜合,從而得到目標程序。所謂分析,是指詞法分析和語法分析;所謂綜合是指代碼優化,存儲分配和代碼生成。為了完成這些分析綜合任務,編譯程序採用對源程序進行多次掃描的辦法,每次掃描集中完成一項或幾項任務,也有一項任務分散到幾次掃描去完成的。下面舉一個四遍掃描的例子:第一遍掃描做詞法分析;第二遍掃描做語法分析;第三遍掃描做代碼優化和存儲分配;第四遍掃描做代碼生成。
值得一提的是,大多數的編譯程序直接產生機器語言的目標代碼,形成可執行的目標文件,但也有的編譯程序則先產生匯編語言一級的符號代碼文件,然後再調用匯編程序進行翻譯加工處理,最後產生可執行的機器語言目標文件。
在實際應用中,對於需要經常使用的有大量計算的大型題目,採用招待速度較快的編譯型的高級語言較好,雖然編譯過程本身較為復雜,但一旦形成目標文件,以後可多次使用。相反,對於小型題目或計算簡單不太費機時的題目,則多選用解釋型的會話式高級語言,如basic,這樣可以大大縮短編程及調試的時間。
❿ 編譯程序和匯編程序有什麼不同
1.機器碼是計算機的唯一標識,一般取自計算機的序列號。機器語言是計算機執行的語言,一般的高級語言只有轉化為機器語言,計算機才能識別,工作。2.機器碼和機器語言都不是一樣的,自然機器碼不是唯一的機器語言。3怎麼說呢,匯編程序和編譯程序是不能放在同一起跑線上的,兩個是不同的方面。計算機只能識別機器語言,所以當程序員用匯編語言編寫程序的時候,機器必須將匯編語言轉化為機器語言才行,這就要用到匯編程序來完成。而編譯程序應該和解釋程序放在一起,是為了將高級語言轉化為機器語言,不同在於,是否產生可執行程序。呵呵,我自己答得,如果不懂,可以追問。