編譯原理作業(yè)集-第一章-修訂版_第1頁
編譯原理作業(yè)集-第一章-修訂版_第2頁
編譯原理作業(yè)集-第一章-修訂版_第3頁
編譯原理作業(yè)集-第一章-修訂版_第4頁
編譯原理作業(yè)集-第一章-修訂版_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第一章 引 論本章要點:1. 正確理解什么是編譯程序;2. 了解編譯程序工作的基本過程及各階段的基本任務(wù);3. 熟悉編譯程序的總體結(jié)構(gòu)框圖;4. 了解編譯程序的構(gòu)造過程和構(gòu)造工具。本章目標(biāo):1. 掌握本章的“編譯程序”、“交叉編譯程序”、“編譯前端與編譯后端”等基本概念,并能在以后的學(xué)習(xí)熟練運用;2. 掌握T形圖表示。本章重點:1. 概念比較:編譯程序、解釋程序;診斷編譯程序、優(yōu)化編譯程序;交叉編譯程序、可變目標(biāo)編譯程序;編譯前端與編譯后端;2. 編譯工作過程的五個階段;3. 編譯程序總框;4. 編譯程序“移植”。本章難點1. 編譯程序“移植”;作業(yè)題及參考答案一、單項選擇題:(按照組卷方案,

2、至少8道小題)1. 如果一個編譯程序能產(chǎn)生不同于其宿主機的機器代碼,則稱它為: 。a. 診斷編譯程序b. 優(yōu)化編譯程序 c. 交叉編譯程序 d. 可變目標(biāo)編譯程序2. 編譯程序?qū)⒏呒壵Z言程序翻譯成 。a. 機器語言程序或高級語言程序 b. 匯編語言或機器語言程序 c. 匯編語言程序或高級語言程序 d. 中間語言程序或高級語言程序3. 下面的四個選項中,_不是編譯程序的組成部分。a. 詞法分析程序 b. 代碼生成程序 c. 設(shè)備管理程序 d. 語法分析程序4. 現(xiàn)代多數(shù)實用編譯程序所產(chǎn)生的目標(biāo)代碼都是一種可重定位的指令代碼,在運行前必須借助于一個 把各個目標(biāo)模塊,包括系統(tǒng)提供的庫模塊連接在一起,

3、確定程序變量或常數(shù)在主存中的位置,裝入內(nèi)存中制定的起始地址,使之成為一個可運行的絕對指令代碼的程序。a. 重定位程序; b. 解釋程序;c. 連接裝配程序;d. 診斷程序;5. 從編譯程序的角度說,源程序中的錯誤通常分為 兩大類。a. 詞法錯誤和語法錯誤; b. 語法錯誤和語義錯誤; c. 編輯錯誤和診斷錯誤; d. 詞法錯誤和語義錯誤;6. 下面對編譯原理的有關(guān)概念正確描述的是: 。a. 目標(biāo)語言只能是機器語言b. 編譯程序處理的對象是源語言。c. Lex是語法分析自動生成器d. 解釋程序?qū)儆诰幾g程序7. 目標(biāo)代碼生成階段所生成的目標(biāo)代碼的形式不可能是 。a. 絕對指令代碼b. 可充定位的指

4、令代碼。c. 匯編指令代碼d. 三地址代碼8. 語義錯誤是指源程序中不符合語義規(guī)則的錯誤,不包括: a. 非法字符錯誤b. 類型不一致錯誤。c. 作用域錯誤 d. 說明錯誤一答案:1. c; 2. b; 3. c; 4. c;5. b;6. d;7. d;8.a;二、填空題:(按照組卷方案,至少8道小題)1我們有時把編譯程序劃分為編譯前端和編譯后端。前端主要由與 有關(guān)但與 無關(guān)的那些部分組成。2對編譯程序而言,輸入數(shù)據(jù)是 ;輸出數(shù)據(jù)是 。3. 編譯后端通常不依賴于源語言而僅僅依賴于 。4. 如果不需改寫編譯程序中與機器無關(guān)的部分就可以把編譯程序移植到另外一個目標(biāo)機上,則稱該編譯程序是 。5.

5、描述程序設(shè)計語言詞法的有效工具是 。6. 編譯過程的每一個階段都能檢測出錯誤,其中,絕大多數(shù)錯誤在_ 階段檢測出來的。7. 為了使編譯后的Java程序從一個平臺移到另外一個平臺上執(zhí)行,Java定義了一種稱為ByteCode的虛擬機代碼。只要實際使用的操作平臺上實現(xiàn)了執(zhí)行ByteCode的Java解釋器,這個操作平臺就可以執(zhí)行各種Java程序。這就是所謂Java語言的 。8.在一個程序設(shè)計環(huán)境中, 起著中心作用。連接程序、調(diào)試程序、程序分析等工具的工作直接依賴于它所產(chǎn)生的結(jié)果。二答案:1. 源程序,目標(biāo)機;2. 源程序,目標(biāo)程序;3. 中間語言; 4. 可變目標(biāo)編譯程序;5. 正規(guī)式和有限自動機

6、;6. 詞法分析、語法分析和語義分析;7. 操作平臺無關(guān)性;8.編譯程序。 三、判斷題:(按照組卷方案,至少8道小題)1. 在編譯過程中,既可以將幾個不同的階段合為一遍,也可以把一個階段的工作分為若干遍。 ( )2. 編譯程序生成的目標(biāo)程序都是可執(zhí)行的程序。 ( )3. 編譯前端主要由與源語言和目標(biāo)機相關(guān)的那些部分組成。 ( )4. 優(yōu)化的任務(wù)在于對前端編譯所產(chǎn)生的中間代碼進(jìn)行加工和變換,以其能產(chǎn)生運行結(jié)果更為準(zhǔn)確的目標(biāo)代碼。 ( )5. 為了讓編譯程序可改變目標(biāo)機,通常需要一種良好定義的中間語言支持。 ( )6. 匯編器將高級語言程序翻譯成匯編語言程序。 ( )7. 許多編譯程序在識別出語法

7、單位后并不真正構(gòu)造語法樹。 ( )8. 取編譯程序前端改寫其后端以生成不同機器上的目標(biāo)代碼,目前技術(shù)上還難以實現(xiàn)。( )三答案 1. ;2. ;3. ;4. ;5. ;6. ;7. ;8. ;四、名詞解釋:、(按照組卷方案,至少3道小題)1. 診斷編譯程序、優(yōu)化編譯程序;2. 交叉編譯程序、可變目標(biāo)編譯程序;3. 編譯程序的“遍”4. 程序設(shè)計環(huán)境四答案:1.診斷編譯程序:專門用于幫助程序開發(fā)和調(diào)試的編譯程序。 優(yōu)化編譯程序:著重于提高目標(biāo)代碼效率的編譯程序。2.交叉編譯程序:能產(chǎn)生不同于其宿主機的機器代碼的編譯程序。 可變目標(biāo)編譯程序:不需重寫編譯程序中與機器無關(guān)的部分就能改變目標(biāo)機的編譯程

8、序。3. 編譯程序的“遍”:就是對源程序或者中間結(jié)果從頭到尾的一次掃描,并做有關(guān)的加工處理,生成新的中間結(jié)果或者目標(biāo)程序。4. 程序設(shè)計環(huán)境:支持程序設(shè)計人員進(jìn)行程序設(shè)計開發(fā)所需要的如編輯程序、編譯程序、連接程序和調(diào)試程序等軟件工具,一起構(gòu)成程序設(shè)計環(huán)境。五、簡答題:(按照組卷方案,至少3道小題)1. 什么是編譯程序的“遍”?2. 什么編譯程序、解釋程序?編譯程序和解釋程序有什么區(qū)別?3. 前端編譯和后端編譯是如何劃分的?4. 什么是標(biāo)識符,什么是名字,它們的區(qū)別是什么?5. 如果機器A上已有一個用A機器代碼實現(xiàn)的某高級語言L1的編譯程序,則可以用L1編寫另一種高級語言L2的編譯程序,畫出這個

9、實現(xiàn)過程的T形圖表示。6. 如何采用“移植”的辦法,利用A機器上已有的高級語言L編寫能夠在B機器上運行的高級語言L的編譯程序?畫出T形圖表示。五答案:1. 編譯程序的“遍”,就是對源程序或者中間結(jié)果從頭到尾的一次掃描,并做有關(guān)的加工處理,生成新的中間結(jié)果或者目標(biāo)程序。既可以將幾個不同階段合為一遍,也可以把一個階段的工作分為若干遍。當(dāng)一遍中包含若干階段時,各階段的工作是穿插進(jìn)行的。一個編譯程序究竟應(yīng)分為幾遍、如何劃分,是與源語言、設(shè)計要求、硬件設(shè)備等諸因素有關(guān)的,難以統(tǒng)一規(guī)定。2. 編譯程序:把某一種高級語言源程序轉(zhuǎn)換成匯編語言程序或機器語言程序的程序。解釋程序:對高級語言源程序并不生成匯編程序或機器語言程序,而是邊解釋邊執(zhí)行的程序。編譯程序把源語言程序翻譯成目標(biāo)代碼,然后由操作系統(tǒng)加載執(zhí)行;而解釋程序則是邊翻譯邊執(zhí)行,不生成目標(biāo)代碼。3. 前端編譯和后端編譯是如何劃分的?根據(jù)編譯器的工作是與源語言相關(guān)還是目標(biāo)機器有關(guān)來進(jìn)行劃分。編譯前端:編譯程序中包括詞法分析、語法分析、語義分析和中間代碼產(chǎn)生等主要與源語言程序有關(guān)但與目標(biāo)機無關(guān)的那些部分叫編譯前端。編譯后端:編譯程序中包括目標(biāo)代碼生成、目標(biāo)代碼優(yōu)化等與目標(biāo)機有關(guān)而與源語言無關(guān)的那些部分部分叫編譯后端。4. 標(biāo)識符是由字母或數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論