編譯原理第三版 作業一

2021-10-23 04:22:41 字數 1179 閱讀 4530

編譯原理

1、 解釋下列術語:

源程式:源語言編寫的程式叫源程式。

編譯程式:如果源語言為高階語言, 目標語言為某台計算機上的組合語言或機器語言,則此翻譯程式稱為編譯程式

目標程式:目標語言書寫的程式稱為目標程式 。

編譯程式的前端:它由這樣一些階段組成:這些階段的工作主要依賴於源語言而與目標機無關。通常前端包括詞法分析、語法分析、語義分析和中間**生成這些階段,某些優化工作也可在前端做,也包括與前端每個階段相關的出錯處理工作和符號表管理等工作

後端:指那些依賴於目標機而一般不依賴源語言,只與中間**關的那些階段,即目標**生成,以及相關出錯處理和符號表操作

遍:是對源程式或其等價的中間語言程式從頭到尾掃視並完成規定任務的過程

2、 編譯程式有哪些主要構成成分?各自的主要功能是什麼?

編譯程式的主要構成成分有:詞法分析程式、語法分析程式、語義分析程式、中間**生成程式、**優化程式、目標**生成程式、**管理程式及出錯處理程式。

(1)詞法分析程式:從左到右掃瞄源程式,識別單詞及其有關屬性;

(2)語法分析程式:分析源程式的結構, 判別它是否為相應程式語言中的乙個合法程式;

(3)語義分析程式:審查源程式有無語義錯誤,為**生成階段收集型別資訊;

(4)中間**生成程式:將源程式變成一種內部表示形式;

(5)**優化程式:對前階段產生的中間**進行變換或進行改造,使生成的目標**更為高效;

(6)目標**生成程式:把中間**變換成特定機器上的絕對指令**或可重定位的指令**或彙編指令**;

(7)**管理程式:儲存編譯過程中的各種資訊;

(8)出錯處理程式:若編譯過程中發現源程式存在錯誤,則報告錯誤的性質和錯誤發生的地點,有些還可以自動校正錯誤。

3、 什麼是解釋程式?它的編譯程式的主要不同是什麼?

解釋程式接受某個語言的程式並立即執行這個源程式。它的工作模式是乙個個的獲取、分析並執行源程式語句,一旦第乙個語句分析結束,源程式便開始執行並且生成結果,它特別適合程式設計師互動方式的工作情況。而編譯程式是乙個語言處理程式,它把乙個高階語言程式翻譯成某個機器的彙編或二進位制**程式,這個二進位制**程式再機器上執行以生成結果。

它們的主要不同在於:解釋程式是邊解釋邊執行,解釋程式執行結束即可得到該程式的執行結果,而編譯程式只是把源程式翻譯成彙編或者二進位制程式,這個程式再執行才能得到程式的執行結果。(當然還有其他不同,比如儲存組織方式不同。

編譯apue 第三版

想要直接使用作者提供的源 就需要編譯下,這個檔名是src.3e.tar.gz 很簡單的幾步就搞定了.解壓src.3e.tar.gz 進入apue.3e make 進入apue.3e lib目錄,複製libapue.a到 usr local lib目錄 進入 apue.3e include目錄,複製 ...

UnixShell程式設計 第三版

這本書相當老了,04年的,現在 在linux上做實驗。1,date 顯示日期。2,who 顯示使用者,who am i 3,echo 後面字串會全部輸出,會過濾掉多餘空格,單雙引號,分號等。4,ls 列出檔案。5,cat 檢視檔案。6,wc 檔名,第乙個數字是檔案行數,第二個數字是檔案單詞書,第三個...

CSS權威指南(第三版)

很早就買了這本書,之前都是斷斷續續地看,前段時間總算是花時間系統的把它看了一遍。嚴格的說是第二次才把這本書系統的看完,之前是因為很多知識點看不懂,所以沒有系統看。雖然這一次也有好多知識點沒有看懂。但是每一次看這本書總有不一樣的收穫,因為每一次你都在提高,我想這本書會一直陪伴著我。這本書講的非常通俗,...