編譯原理自測(一、二、三)及答案_第1頁
編譯原理自測(一、二、三)及答案_第2頁
編譯原理自測(一、二、三)及答案_第3頁
編譯原理自測(一、二、三)及答案_第4頁
編譯原理自測(一、二、三)及答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

編譯原理自測(一、二、三)及答案編譯原理自測(一、二、三)及答案/編譯原理自測(一、二、三)及答案編譯原理自測一是非題(下列各題,你認為正確的,請在題干的括號內打“√”,錯的打“×”。每題1分,共5分)

1、算符優先關系表不一定存在對應的優先函數。正確

2、數組元素的地址計算與數組的存儲方式有關。.正確

3、僅考慮一個基本塊,不能確定一個賦值是否真是無用的。正確

4、每個文法都能改寫為LL(1)文法。不正確

5、對于數據空間的存貯分配,FORTRAN采用動態貯存分配策略。不正確填空題從功能上說,程序語言的語句大體可分為(執行性)語句和(說明性)語句兩大類。

2、掃描器的任務是從(源程序)中識別出一個個(單詞符號)。

3、所謂最右推導是指:(任何一步αβ都是對α中最右非終結符進行替換的)。

4、語法分析最常用的兩類方法是(自上而下)和(自下而上)分析法。

5、一個上下文無關文法所含四個組成部分是(一組終結符號,一組非終結符號、一個開始符號、一組產生式)。

6、所謂語法制導翻譯方法是(為每個產生式配上一個翻譯子程序,并在語法分析的同時執行這些子程序)。

7、符號表中的信息欄中登記了每個名字的有關的性質,如(類型、種屬、?)等等。

8、一個過程相應的DISPLAY表的內容為(現行活動記錄)。

9、常用的兩種動態存貯分配辦法是(棧式)動態分配和(堆式)動態分配。

10、產生式是用于定義(語法范疇)的一種書寫規則。名詞解釋1.遍--指編譯程序對源程序或中間代碼程序從頭到尾掃描一次。2.無環路有向圖(DAG)--如果有向圖中任一通路都不是環路,則稱廬有向圖為

無環路有向圖,簡稱DAG。3.語法分析--按文法的產生式識別輸入的符號串是否為一個句子的分析過程。4.短語--令G是一個文法。S劃文法的開始符號,假定αβδ是文法G的一個句型,如果有SαAδ且AB,則稱β是句型αβ相對非終結符A的短語。5.后綴式--一種把運算量寫在前面,把算符寫在后面的表示表達式的方法。編譯原理自測二是非題(下列各題,你認為正確的,請在題干的括號內打“√”,錯的打“×”。每題1分,共5分)

1、一個LL(1)文法一定是無二義的。.正確

2、逆波蘭法表示的表達式亦稱前綴式。.不正確

3、目標代碼生成時,應考慮如何充分利用計算機的寄存器的問題。.正確

4、正規文法產生的語言都可以用上下文無關文法來描述。.正確

5、一張轉換圖只包含有限個狀態,其中有一個被認為是初態,最多只有一個終態。不正確二、填空題

1、語法分析是依據語言的(語法)規則進行的,中間代碼產生是依據語言的(語義)規則進行的。2、程序語言的單詞符號一般可以分為(基本字、標識符、常量、算符、界符)等等。3、語法分析器的輸入是(單詞符號串),其輸出是(語法單位)4、所謂自上而下分析法是指(從開始符號出發,向下推導,推出句子)。5、如果一個文法存在某個句子對應兩棵不同的語法樹,則稱這個文法是(二義的)。6、對于文法G,僅含終結符號的句型稱為(句子)。7、逆波蘭式ab+c+d*e-所表達式為()。8、一個名字的屬性包括(類型)和(作用域)。9、對于數據空間的存貯分配,FORTRAN采用(靜態存儲分配)策略,PASCAL采用(動態存儲分配)策略。10、所謂優化是指(對程序進行各種等價變換,使得從變換后的程序出發,能生成更有效的目標代碼)。三、名詞解釋1.詞法分析器——指執行詞法分析的程序。2.語法——一組規則,用它可以形成和產生一個合式的程序3.最右推導——指對于一個推導序列中的每一步直接推導,被替換的總是當前

符號串中的最右非終結符號。4.語法制導翻譯——在語法分析過程中,根據每個產生式所對應的語義子程序

進行翻譯的辦法叫做語法制導翻譯。5.基本塊——指程序中一個順序執行的語句序列,其中只有一個入口,一個出

口,入口即第一個語句。出口即最后一個語句。編譯原理自測三一選擇題(每空2分,共20分)

1、文法G產生的⑴的全體是該文法描述的語言。D

A.句型B.終結符集C.非終結符集D.句子

2、若文法G定義的語言是無限集,則文法必然是⑵:A

A.遞歸的B.前后文無關的C.二義性的D.無二義性的

3、Chomsky定義的四種形式語言文法中,0型文法又稱為⑶A文法;1型文法又稱為⑷C文法;2型語言可由⑸G識別。

A.短語結構文法B.前后文無關文法C.前后文有關文法D.正規文法

E.圖靈機F.有限自動機G.下推自動機

A.短語結構文法B.前后文無關文法C.前后文有關文法D.正規文法

E.圖靈機F.有限自動機G.下推自動機

A.短語結構文法B.前后文無關文法C.前后文有關文法D.正規文法

E.圖靈機F.有限自動機G.下推自動機

4、一個文法所描述的語言是⑹A;描述一個語言的文法是⑺B。

A.唯一的B.不唯一的C.可能唯一,可能不唯一

A.唯一的B.不唯一的C.可能唯一,可能不唯一

5、數組的內情向量中肯定不含有數組的⑻A的信息

A.維數B.類型C.維上下界D.各維的界差

6、在下述的編譯方法中,自底向上的方法有⑼F,自頂向下的分析方法有⑽A。

①簡單優先分析②算符優先分析③遞歸下降分析④預測分析技術

⑤LR(K)分析⑥SLR(k)分析⑦LL(k)分析⑧LALR(K)分析

A.③④⑦B.③④⑧C.①②⑧D.③④⑤⑥⑦

E.①②⑤⑥⑦F.①②⑤⑥⑧

A.③④⑦B.③④⑧C.①②⑧D.③④⑤⑥⑦

E.①②⑤⑥⑦F.①②⑤⑥⑧二、簡答題1.LL(1)分析法對文法有哪些要求?對于G中的每個產生式A→γ1|γ2|…|γm,其各候選式均應滿足:

(1)不同的候選式不能推出以同一終結符號打頭的符號串,即FIRST(γi)∩FIRST(γj)=φ(1≤i,j≤m;i≠j)

(2)若有γjε,則其余候選式γi所能推出的符號串不能以FOLLOW(A)中的終結符號開始,即有

FIRST(γi)∩FOLLOW(A)=φ(i≤1,2,…,m;i≠j)2.常見的存儲分配策略有幾種?它們都適合于什么性質的語言?有三種分配存儲空間的方式:

(1)靜態分配若在編譯階段就能確定源程序中各個數據實體的存儲空間大小,則可以采用較簡單的靜態存儲管理。適合靜態管理的語言應具備條件:數組上下界是常數、過程調用不允許遞歸、不允許動態建立數據實體。

(2)棧式分配適用于允許遞歸調用的程序設計語言;

(3)堆式分配對于允許程序在運行時為變量動態申請和釋放存儲空間的語言,采用堆式分配是最有效的解決方案。3.常見循環優化都有哪些項目?不變運算外提;運算強度削弱;消除歸納變量;下標變量地址計算優化。4.什么是活動記錄?它主要由哪些內容構成?一個過程的一次執行所需信息的管理,是通過稱為活動記錄的連續存儲塊來實

現的?;顒佑涗浀闹饕獌热萦校?/p>

(1)臨時變量域存放目標程序臨時變量的值;

(2)局部數據域存放過程本次執行時的局部數據、簡單變量與數組內情向量等;

(3)機器狀態域

溫馨提示

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

評論

0/150

提交評論