資源簡介
《編譯原理》課后習題答案第一章 第?1?章引論 第?1?題 解釋下列術語: (1)編譯程序 (2)源程序 (3)目標程序 (4)編譯程序的前端 (5)后端 (6)遍 答案: (1)?編譯程序:如果源語言為高級語言,目標語言為某臺計算機上的匯編語言或機器語 言,則此翻譯程序稱為編譯程序。 (2)?源程序:源語言編寫的程序稱為源程序。 (3)?目標程序:目標語言書寫的程序稱為目標程序。 (4)?編譯程序的前端:它由這樣一些階段組成:這些階段的工作主要依賴于源語言而與 目標機無關。通常前端包括詞法分析、語法分析、語義分析和中間代碼生成這些階 段,某些優化工作也可在前端做,也包括與前端每個階段相關的出錯處理工作和符 號表管理等工作。 (5)?后端:指那些依賴于目標機而一般不依賴源語言,只與中間代碼有關的那些階段, 即目標代碼生成,以及相關出錯處理和符號表操作。 (6)?遍:是對源程序或其等價的中間語言程序從頭到尾掃視并完成規定任務的過程。 第?2?題 一個典型的編譯程序通常由哪些部分組成?各部分的主要功能是什么?并畫出編譯程 序的總體結構圖。 答案: 一個典型的編譯程序通常包含?8?個組成部分,它們是詞法分析程序、語法分析程序、語 義分析程序、中間代碼生成程序、中間代碼優化程序、目標代碼生成程序、表格管理程序和 錯誤處理程序。其各部分的主要功能簡述如下。 詞法分析程序:輸人源程序,拼單詞、檢查單詞和分析單詞,輸出單詞的機內表達形式。 語法分析程序:檢查源程序中存在的形式語法錯誤,輸出錯誤處理信息。 語義分析程序:進行語義檢查和分析語義信息,并把分析的結果保存到各類語義信息表 中。 中間代碼生成程序:按照語義規則,將語法分析程序分析出的語法單位轉換成一定形式 的中間語言代碼,如三元式或四元式。 中間代碼優化程序:為了產生高質量的目標代碼,對中間代碼進行等價變換處理。 盛威網(www.snwei.com)專業的計算機學習網站1 《編譯原理》課后習題答案第一章 目標代碼生成程序:將優化后的中間代碼程序轉換成目標代碼程序。 表格管理程序:負責建立、填寫和查找等一系列表格工作。表格的作用是記錄源程序的 各類信息和編譯各階段的進展情況,編譯的每個階段所需信息多數都從表格中讀取,產生的 中間結果都記錄在相應的表格中。可以說整個編譯過程就是造表、查表的工作過程。需要指 出的是,這里的“表格管理程序”并不意味著它就是一個獨立的表格管理模塊,而是指編譯 程序具有的表格管理功能。 錯誤處理程序:處理和校正源程序中存在的詞法、語法和語義錯誤。當編譯程序發現源 程序中的錯誤時,錯誤處理程序負責報告出錯的位置和錯誤性質等信息,同時對發現的錯誤 進行適當的校正(修復),目的是使編譯程序能夠繼續向下進行分析和處理。 注意:如果問編譯程序有哪些主要構成成分,只要回答六部分就可以。如果搞不清楚, 就回答八部分。 第?3?題 何謂翻譯程序、編譯程序和解釋程序?它們三者之間有何種關系? 答案: 翻譯程序是指將用某種語言編寫的程序轉換成另一種語言形式的程序的程序,如編譯程 序和匯編程序等。 編譯程序是把用高級語言編寫的源程序轉換(加工)成與之等價的另一種用低級語言編 寫的目標程序的翻譯程序。 解釋程序是解釋、執行高級語言源程序的程序。解釋方式一般分為兩種:一種方式是, 源程序功能的實現完全由解釋程序承擔和完成,即每讀出源程序的一條語句的第一個單詞, 則依據這個單詞把控制轉移到實現這條語句功能的程序部分,該部分負責完成這條語句的功 能的實現,完成后返回到解釋程序的總控部分再讀人下一條語句繼續進行解釋、執行,如此 反復;另一種方式是,一邊翻譯一邊執行,即每讀出源程序的一條語句,解釋程序就將其翻 譯成一段機器指令并執行之,然后再讀人下一條語句繼續進行解釋、執行,如此反復。無論
代碼片段和文件信息
評論
共有 條評論