編譯原理模擬試卷ABC_第1頁(yè)
編譯原理模擬試卷ABC_第2頁(yè)
編譯原理模擬試卷ABC_第3頁(yè)
編譯原理模擬試卷ABC_第4頁(yè)
編譯原理模擬試卷ABC_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、編譯原理A一、不定項(xiàng)選擇題(每題5分,共8題,計(jì)40分)1. 下面說(shuō)法錯(cuò)誤的有( CD )。A、編譯前端完成對(duì)源程序的分析 B、編譯后端對(duì)源程序進(jìn)行綜合C、編譯器等同于解釋器D、編譯器可以發(fā)現(xiàn)源程序的全部語(yǔ)法錯(cuò)誤和全部語(yǔ)義錯(cuò)誤2. 下面( ACD )是編譯程序的組成部分。 A、詞法分析程序B、設(shè)備管理程序C、語(yǔ)法分析程序D、代碼生成程序3. 不屬于下面正規(guī)式定義的語(yǔ)言集合的元素有( C )。這里,id是字母開(kāi)頭,后跟字母或數(shù)字的,長(zhǎng)度不超過(guò)10的字符串形式。( int | float | double ) id (, id )* ;A、int a;B、int a,b,d;C、float xyz

2、 abc;D、double m;4. C語(yǔ)言編譯中的存儲(chǔ)分配策略是( B )。A、靜態(tài)存儲(chǔ)分配策略 B、動(dòng)態(tài)存儲(chǔ)分配策略C、最佳分配策略D、時(shí)鐘分配策略5. Java編譯器生成的是( BCD )。A、JavacB、.class文件C、BytecodeD、字節(jié)碼6. 文法G(E): E i | E+E | E*E | (E) 不可以產(chǎn)生的句子是( CD )。A、(i)B、i*(i+i)+(i*i)C、i+D、(i+()7. 常用的中間代碼表示形式有( ABC )。A、后綴表示B、圖形表示C、三地址碼D、中綴表示8. 在編譯過(guò)程中,符號(hào)表的主要作用有( CD )。A、幫助錯(cuò)誤處理B、輔助語(yǔ)法錯(cuò)誤的

3、檢查C、輔助語(yǔ)義的正確性檢查D、輔助代碼生成E、輔助對(duì)目標(biāo)程序的優(yōu)化二、判斷題(每題2分,共10題,計(jì)20分,寫(xiě)對(duì)或錯(cuò))1. 編譯的整個(gè)過(guò)程都要包括符號(hào)表管理和出錯(cuò)管理兩個(gè)部分。(對(duì) )2. 文法E E + id | id是SLR(1)文法也是LR(1)文法。(對(duì) )3. 對(duì)任何一個(gè)編譯程序來(lái)說(shuō),產(chǎn)生中間代碼是不可缺少的一部分。( 錯(cuò) )4. 如果一種程序語(yǔ)言允許數(shù)據(jù)對(duì)象能夠自由地分配和釋放,就需要采用堆式存儲(chǔ)分配方法。 ( 對(duì) ) 5. 正規(guī)文法、正規(guī)式、確定有限自動(dòng)機(jī)和非確定有限自動(dòng)機(jī)在接收語(yǔ)言的能力上是互相等價(jià)的。 (對(duì) )6. 正規(guī)式能用于描述配對(duì)或嵌套的結(jié)構(gòu)。(錯(cuò) ) 7. 算符作用

4、于不相容的運(yùn)算對(duì)象,這屬于語(yǔ)法錯(cuò)誤。( 錯(cuò) )8. LR分析中四個(gè)文法的關(guān)系是LR(1) LALR(1) SLR(0) LR(0)。(對(duì))9. 后綴表示的優(yōu)點(diǎn)是便于計(jì)算機(jī)處理表達(dá)式。(對(duì) )10. 基本塊是連續(xù)的語(yǔ)句序列,控制流從它的開(kāi)始進(jìn)入,從它的末尾離開(kāi)。( 對(duì))三、填空題(每題10分,共4題,計(jì)40分)1. 為下面文法寫(xiě)一個(gè)語(yǔ)法制導(dǎo)的定義,它完成一個(gè)句子的while-do最大嵌套層次的計(jì)算并輸出這個(gè)計(jì)算結(jié)果。在括號(hào)處填上每句文法對(duì)應(yīng)的方案。 S E ( print(S.loop); )E while E do E ( E.loop := max(E1.loop, E2.loop) +1;

5、 )| id := E ( E.loop := E1.loop; )| E + E ( E.loop := max(E1.loop, E2.loop); )| id ( E.loop := 0; )| (E) 此句文法不寫(xiě)2. 正規(guī)式的三個(gè)基本運(yùn)算符是( | ),( . )和( * ),優(yōu)先級(jí)最高的運(yùn)算符是( * ),優(yōu)先級(jí)最低的運(yùn)算符是( | )。3. 對(duì)下面的文法G(S),若對(duì)句子 *i1=i2進(jìn)行規(guī)范歸約,其符號(hào)棧的操作步驟是(移入*,移入i1,i1歸約為V,V歸約為E,*E歸約為V,移入=,移入i2,i2歸約為V,V歸約為E,V=E 歸約為S。)。S ® V=E | EV &

6、#174; *E | iE ® V4. 對(duì)于下面C語(yǔ)言文件,某編譯器編譯時(shí)對(duì)函數(shù)f1有警告錯(cuò)誤,提示內(nèi)容是warning: declaration of x shadows a parameter。對(duì)函數(shù)f2沒(méi)有類(lèi)似的警告錯(cuò)誤的原因是(對(duì)于函數(shù)f1,局部變量x聲明的作用域是整個(gè)函數(shù)體,導(dǎo)致在函數(shù)體中不可能訪(fǎng)問(wèn)形式參數(shù)x,由于這是一個(gè)合法的C語(yǔ)言函數(shù),因此編譯器給出警告錯(cuò)誤;對(duì)于函數(shù)f2,由于局部變量x的作用域只是函數(shù)體的一部分,不會(huì)出現(xiàn)上述問(wèn)題,因而編譯器不報(bào)錯(cuò)。 )。f1(int x)long x;x = 1;f2(int x)long x;x = 1;編譯原理B一、不定項(xiàng)選擇題(

7、每題5分,共8題,計(jì)40分)1. 屬于正規(guī)式(a|b)(0|1|2)*(a|b)定義的語(yǔ)言集合的元素有(ABD)。A、a0a B、aa C、abda D、a012b2. 用l代表字母,d代表數(shù)字,定義標(biāo)識(shí)符單詞的正規(guī)式有( C )。 A、ld* B、ll C、l(l|d)* D、ll*|d*3. 編譯器生成的目標(biāo)代碼的主要形式有( ABC )。A、可立即執(zhí)行的機(jī)器語(yǔ)言代碼B、匯編語(yǔ)言程序C、待裝配的機(jī)器語(yǔ)言代碼模塊D、抽象語(yǔ)法樹(shù)程序4. LR語(yǔ)法分析棧中存放的狀態(tài)是識(shí)別( B )的DFA狀態(tài)。A、前綴B、活前綴C、項(xiàng)目D、句柄5. 已知文法G(S)如下,該文法是( CD )。S LaR|RL

8、bR|cR LA、LR(0)文法B、SLR(1)文法C、LR(1)文法D、LALR(1)文法6. 編譯過(guò)程中,以下屬于語(yǔ)法分析器的任務(wù)的有( BCD )。A、分析單詞是怎樣構(gòu)成的B、分析單詞串是如何構(gòu)成語(yǔ)句和說(shuō)明的C、分析語(yǔ)句和說(shuō)明是如何構(gòu)成程序的D、分析程序的結(jié)構(gòu)7. 影響編譯器存儲(chǔ)分配策略的語(yǔ)言特征有( ABCD )。A、過(guò)程能否遞歸B、過(guò)程能否訪(fǎng)問(wèn)非局部變量C、存儲(chǔ)塊是否必須顯式地釋放D、存儲(chǔ)塊是否在程序控制下動(dòng)態(tài)地分配8. 一般程序設(shè)計(jì)語(yǔ)言都涉及(ABC )幾個(gè)方面。A、語(yǔ)法B、語(yǔ)義C、語(yǔ)用D、程序基本符號(hào)的確定二、判斷題(每題2分,共10題,計(jì)20分,寫(xiě)對(duì)或錯(cuò))1. 自上向下語(yǔ)法分析

9、遇到的主要困難是左遞歸帶來(lái)的無(wú)限循環(huán)和回溯。(對(duì))2. 下面所示的文法是LALR(1)文法。(對(duì))S V = E | EV E | idE V3. 通常程序設(shè)計(jì)語(yǔ)言的中的單詞符號(hào)都能用正規(guī)式描述。( 對(duì) )4. 因?yàn)槊侄际怯脴?biāo)識(shí)符表示的,故名字與標(biāo)識(shí)符沒(méi)有區(qū)別。(錯(cuò) )5. 現(xiàn)今的程序語(yǔ)言一般用上下文無(wú)關(guān)文法來(lái)描述。(對(duì) )6. 算術(shù)表達(dá)式的括號(hào)不匹配屬于語(yǔ)法錯(cuò)誤。( 對(duì) )7. LALR分析中,同心集的和并不會(huì)引起新的移進(jìn)-歸約沖突。(對(duì) ) 8. (8-4)+2的后綴表示是8 4 2 + 。(對(duì) )9. 代碼優(yōu)化環(huán)節(jié)中,代碼變換可以改變程序的含義。(錯(cuò) )10. 句柄的右邊僅含終結(jié)符。如

10、果文法二義,那么句柄可能不唯一。(對(duì) )三、填空題(每題10分,共4題,計(jì)40分)1. 為下面的算術(shù)表達(dá)式文法寫(xiě)一個(gè)語(yǔ)法制導(dǎo)的翻譯方案,它將每個(gè)子表達(dá)式E的符號(hào)(即值大于零還是小于零)記錄在屬性E.sign中(屬性值分別用POS或NEG表示)??梢约俣ㄋ械恼麛?shù)都不為零,這樣就不用擔(dān)心零的符號(hào)。在括號(hào)處寫(xiě)出每句文法對(duì)應(yīng)的方案。E E * E (if E1.sign = E2.sign then E.sign := POS else E.sign := NEG )| + E (E.sign := E1.sign ) | - E (if E1.sign= POS then E.sign := NE

11、G else E.sign := POS) | unsigned_integer (E.sign := POS )2. 對(duì)下面的文法G(S),F(xiàn)IRST(S)=( a, b, d, e, ),F(xiàn)IRST(T)=( a, b, ),F(xiàn)IRST(R)=( d, ),F(xiàn)IRST(D)=( a, b ),F(xiàn)OLLOW(S)=( # ),F(xiàn)OLLOW(T)=( # ),F(xiàn)OLLOW (R)=( a, b, # ),F(xiàn)OLLOW(D)=( d, # ),這個(gè)文法( 是 )LL(1)文法(填是或不是)。S eT|RTT DR|R dR|D a|bd3. 將下面的DFA化簡(jiǎn)后,(1)-(6)的括號(hào)中應(yīng)該按順序

12、填寫(xiě)( b a b a b a )。4. 將正規(guī)式( int | float ) id (, id )* ;改寫(xiě)成等價(jià)的上下文無(wú)關(guān)文法( D ® T L ;T ® int | floatL ® L, id | id )。編譯原理C一、不定項(xiàng)選擇題(每題5分,共8題,計(jì)40分)1. 解釋程序和編譯程序的主要區(qū)別在于( D )。A、單用戶(hù)與多用的區(qū)別 B、對(duì)用戶(hù)程序的查錯(cuò)能力C、機(jī)器執(zhí)行效率D、是否生成目標(biāo)代碼2. 要在某一臺(tái)機(jī)器上為某種語(yǔ)言構(gòu)造一個(gè)編譯程序,必須掌握( BCD )A、匯編語(yǔ)言B、源語(yǔ)言C、編譯方法D、目標(biāo)語(yǔ)言E、程序設(shè)計(jì)方法學(xué)F、測(cè)試方法3. 文法G

13、(S)=(S,B,b,Sb|bB, BbS,S),該文法描述的語(yǔ)言L(fǎng)(G(S)是( C )A、bi|i>=0B、b2i|i>=0C、b2i+1|i>=0D、b2i+1|i>=14. 有文法G(I): I I1|I0|Ia|Ic|a|b|c,下面屬于這個(gè)文法句子的有(BCD )。A、ab0B、a0c01C、aaaD、bc105. 語(yǔ)法分析常用的方法有( AB )。A、自上而下B、自下而上C、自左向右D、自右向左6. 在編譯程序中安排中間代碼生成的目的是( BC )。A、便于程序空間的組織B、利于中間代碼優(yōu)化C、利于編譯程序移植D、有利于提高編譯程序的質(zhì)量7. 過(guò)程信息表中

14、必須包括( ABC )。A、過(guò)程名B、參數(shù)信息C、過(guò)程入口地址D、目標(biāo)代碼8. 關(guān)于代碼優(yōu)化,下列說(shuō)法中正確的有(ABCD )。A、復(fù)寫(xiě)傳播變換本身并不是優(yōu)化,但它給其它優(yōu)化帶來(lái)機(jī)會(huì)B、一些優(yōu)化變換可能會(huì)引起死代碼C、代碼外提是循環(huán)優(yōu)化的一種D、循環(huán)必須有唯一的入口點(diǎn),叫做首結(jié)點(diǎn),首結(jié)點(diǎn)是循環(huán)中所有結(jié)點(diǎn)的必經(jīng)結(jié)點(diǎn)二、判斷題(每題2分,共10題,計(jì)20分,寫(xiě)對(duì)或錯(cuò))1. 編譯器是一種應(yīng)用軟件。( 錯(cuò) )2. 編譯程序于具體的機(jī)器有關(guān),與具體的語(yǔ)言無(wú)關(guān)。(錯(cuò) )3. 用高級(jí)語(yǔ)言書(shū)寫(xiě)的源程序都必須通過(guò)編譯,產(chǎn)生目標(biāo)代碼后才能投入運(yùn)行。(錯(cuò) )4. 文法G(S):S S*S|S+S|(S)|a是二義性

15、文法。( 對(duì) )5. 符號(hào)與字符的概念是相同的。(錯(cuò) )6. 存在一些語(yǔ)言,他們能被確定的有窮自動(dòng)機(jī)識(shí)別,但不能用正規(guī)表達(dá)式表示。(錯(cuò) )7. LR(0)分析法名字中L的含義是從左到右進(jìn)行分析。( 對(duì) )8. 語(yǔ)法制導(dǎo)翻譯是在語(yǔ)法規(guī)則的制導(dǎo)下,通過(guò)計(jì)算語(yǔ)義規(guī)則,完成對(duì)輸入符號(hào)串的翻譯。( 對(duì) )9. 符號(hào)表由詞法分析程序建立,由語(yǔ)法分析程序使用。(錯(cuò) )10. 靜態(tài)存儲(chǔ)分配要求程序中每一個(gè)數(shù)據(jù)對(duì)象的大小在編譯階段能夠確定。(對(duì) )三、填空題(每題10分,共4題,計(jì)40分)1. 正規(guī)式( 1 | 01 )* 0*所描述的語(yǔ)言是( 所有不含子串001的0和1的串 )。2. 對(duì)下面的文法Follow(F)=( *,+,#,) ), FIRST(T)=( *, )。E TEE +TE| T FTT *FT| F (E) |id3. 為下面的文法寫(xiě)一個(gè)語(yǔ)法制導(dǎo)的定義,用S的綜合屬性val給出下面文法中S產(chǎn)生的二進(jìn)制數(shù)的值。例如,輸入101.101時(shí),S. val := 5.625。在括號(hào)處寫(xiě)出每句文法對(duì)應(yīng)的方案。S ® L . R(S. val := L. val + R. val )S ® L(S. val := L. val )L ®

溫馨提示

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

評(píng)論

0/150

提交評(píng)論