2023年編譯模擬試題及答案_第1頁
2023年編譯模擬試題及答案_第2頁
2023年編譯模擬試題及答案_第3頁
2023年編譯模擬試題及答案_第4頁
2023年編譯模擬試題及答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《編譯原理》模擬試題班級學號姓名評分填空1.文法G涉及四個組成部分:一組終結(jié)符號,,一組產(chǎn)生式,以及。2.文法按產(chǎn)生式的形式分為四種類型,它們是:0型文法,又稱短語文法;1型文法,又稱上下文有關(guān)文法;2型文法,又稱文法;3型文法,又稱文法。3.推導稱為規(guī)范推導,由產(chǎn)生的句型稱為規(guī)范句型。4.設(shè)G是一個文法,S是它的開始符號,假如Sα,則稱α是一個句型。的句型是一個句子。5對于一個文法G而言,假如L(G)中相應(yīng),那么該文法就稱為是二義的。6.通常程序設(shè)計語言的單詞符號分為五種:基本字、、常數(shù)、、界線符。7.在自底向上分析法中,LR分析法把“可歸約串”定義為。8.編譯中常用的中間代碼形式有逆波蘭式、、和四元式等。9.對中間代碼優(yōu)化按涉及的范圍分為局部優(yōu)化,和。10.局部優(yōu)化重要涉及合并已知量、和等內(nèi)容。二、編譯過程通常分為哪幾個重要階段?每個階段的重要功能?三、設(shè)有文法G1G1:S→SaQ1.證明句型QbRae是規(guī)范句型Q→QbR∣RR→cSd∣e2.給出句型QbRae的短語,直接短語和句柄:短語:直接短語:句柄:四、對于文法G2,填寫各產(chǎn)生式的選擇集合和G2的預測分析表。G2:①E→TE'SELECT(①)={}②E'→+TE’SELECT(②)={}③E'→εSELECT(③)={}④T→FT'SELECT(④)={}⑤T'→*FT’SELECT(⑤)={}⑥T'→εSELECT(⑥)={}⑦F→(E)SELECT(⑦)={}⑧F→iSELECT(⑧)={}+*()i#EE'TT'F五、把下面的語句翻譯成四元式序列。(只給出最后結(jié)果,設(shè)nextstat當前值為100)whileA<CdoifA<0thenA:=A+1elseA:=A+2六、用基本塊代碼生成算法生成目的代碼。(假定允許使用R1和R2寄存器,臨時變量Ti出基本塊后都不活躍)四元式選?。夷康拇aRVALUEAVALUET1:=A+BT2:=C-T1T3:=D*ET4:=F+GT5:=T3-T4W:=T2/T5《編譯原理》模擬試題班級學號姓名評分填空1.文法G涉及四個組成部分:一組終結(jié)符號,一組非終結(jié)符號,一組產(chǎn)生式,以及一個開始符號。2.文法按產(chǎn)生式的形式分為四種類型,它們是:0型文法,又稱短語文法;1型文法,又稱上下文有關(guān)文法;2型文法,又稱上下文無關(guān)文法;3型文法,又稱正規(guī)文法。3.最右推導稱為規(guī)范推導,由規(guī)范推導產(chǎn)生的句型稱為規(guī)范句型。4.設(shè)G是一個文法,S是它的開始符號,假如S=*>α,則稱α是一個句型。僅由終結(jié)符號組成的句型是一個句子。5對于一個文法G而言,假如L(G)中存在某個句子相應(yīng)兩棵不同的語法樹,那么該文法就稱為是二義的。6.通常程序設(shè)計語言的單詞符號分為五種:基本字、標記符、常數(shù)、算符、界線符。7.在自底向上分析法中,LR分析法把“可歸約串”定義為句柄。8.編譯中常用的中間代碼形式有逆波蘭式、三元式、樹代碼和四元式等。9.對中間代碼優(yōu)化按涉及的范圍分為局部優(yōu)化,循環(huán)優(yōu)化和全局優(yōu)化。10.局部優(yōu)化重要涉及合并已知量、運用公共子表達式和刪除無用賦值等內(nèi)容。11.為了構(gòu)造不帶回溯的遞歸下降分析程序,我們通常要消除左遞歸和提取左公共因子二、編譯過程通常分為哪幾個重要階段?每個階段的重要功能?(15分)答:編譯過程通常分為詞法分析、語法分析、語義分析、中間代碼生成、代碼優(yōu)化和目的代碼生成六個重要階段。各個階段的重要功能如下:詞法分析階段:讀入源程序,對構(gòu)成源程序的字符流進行掃描和分解,辨認出一個個單詞,并表達成計算機內(nèi)部的形式(TOKEN字)。語法分析階段:在詞法分析的基礎(chǔ)上,將單詞序列分解成各類語法短語,如“表達式”、“語句”、“程序”等,擬定整個輸入串是否構(gòu)成語法上對的的程序。語義分析階段:審查源程序有無語義錯誤,為代碼生成階段收集類型信息。中間代碼生成階段:將源程序翻譯成一種復雜性介于源程序與目的程序之間的內(nèi)部形式(中間代碼)。代碼優(yōu)化:對前階段產(chǎn)生的中間代碼進行等價變換,目的是使將來生成的目的代碼更為高效。目的代碼生成:把中間代碼變換成特定機器上的絕對指令代碼或可重定位的指令代碼或匯編指令代碼。三、設(shè)有文法G1G1:S→SaQ∣Q1.證明句型QbRae是規(guī)范句型Q→QbR∣RR→cSd∣e證:由于句型QbRae可由文法開始符S通過規(guī)范推導產(chǎn)生,推導過程如下:S=R>SaQ=R>SaR=R>Sae=R>Qae=R>QbRae所以句型QbRae是規(guī)范句型。2.給出句型QbRae的語法樹和句柄:語法樹:句柄:QbR四、考慮以下文法:D→TVT→int|floatV→id,V|id在該文法中提取左公因子。為所得的文法的非終結(jié)符構(gòu)造First集合和Follow集合。說明所得的文法是LL(1)文法。為所得的文法構(gòu)造LL(1)分析表假設(shè)有輸入串intx,y,z寫出相應(yīng)的LL(1)分析程序的動作。答:a.文法存在左公因子,提取左公因子后的文法為:D→TVT→int|floatV→idV'V'→,V|εb.非終結(jié)符First集合Follow集合D{int,float}{$}T{int,float}{id}V{id}{$}V'{,,ε}{$}c.(1)First(TV)={int,float(yī)}First(int)∩First(float)={int}∩{float}=φ;First(idV')={id};First(,V)∩First(ε)={,}∩{ε}}=φ;(2)V'=>ε,F(xiàn)irst(V')∩Follow(V')={,,ε}∩{$}=φ根據(jù)LL(1)文法的定義判斷,此文法是LL(1)文法;d.LL(1)分析表為:intfloat(yī)id,$DD→TVD→TVTT→intT→floatVV→idV'V'V'→,VV'→εe.輸入串intx,y,z的LL(1)分析:環(huán)節(jié)分析棧輸入串分析程序的動作1$Dintx,y,z$D→TV2$VTintx,y,z$T→int3$Vintintx,y,z$int匹配4$Vx,y,z$V→idV'5$V'xx,y,z$x匹配6$V',y,z$V'→,V7$V,,y,z$,匹配8$Vy,z$V→idV'9$V'yy,z$y匹配10$V',z$V'→,V11$V,,z$,匹配12$Vz$V→idV'13$V'zz$z匹配14$$接受五、考慮以下的文法:E→(L)|aL→L,E|Ea.為這個文法構(gòu)造LR(0)項目的DFA。b.判斷這個文法是否是LR(0)文法?若不是,請描述出LR(0)沖突,假如是,則構(gòu)造LR(0)分析表。c.判斷這個文法是否為SLR(1)文法?若是,構(gòu)造SLR(1)分析表。d.顯示分析棧和輸入串((a),a,(a,a))的SLR(1)分析程序的工作。答:拓廣文法:(0)E’→E(1)E→(L)(2)E→a(3)L→L,E(4)L→Eaa(I0:E’→·EE→·(L)E→·aI2:E→(·L)L→·L,EL→·EE→·(L)E→·aA→·dI3:E→a·I1:E’→E·I4:E→(L·)L→L·,EI5:L→E·E(aELI6:E→(L)·),I7:L→L,·EE→·(L)E→·a(aI8:L→L,E·E是LR(0)文法,LR(0)分析表為:ACTIONGOTOa(),$EL0S3S211acc2S3S2s4543r2r2r2r2r24S6S75r4r4r4r4r46r1r1r1r1r17S3S288r3r3r3r3r3非終結(jié)符Follow集合E’{$}E{),,,$}L{),,}是SLR(1)文法,SLR(1)分析表為:ACTIONGOTOa(),$EL0S3S211acc2S3S2s4543r2r2r24S6S75r4r46r1r1r17S3S288r3r3環(huán)節(jié)分析棧輸入ACTIONGOTO(shè)1$0((a),a,(a,a))$S22$0(2(a),a,(a,a))$S23$0(2(2a),a,(a,a))$S34$0(2(2a),a,(a,a))$r255$0(2(2E5),a,(a,a))$r446$0(2(2L4),a,(a,a))$S67$0(2(2L4)6,a,(a,a))$r158$0(2E5,a,(a,a))$r449$0(2L4,a,(a,a))$S710$0(2L4,7a,(a,a))$S311$0(2L4,7a3,(a,a))$r2812$0(2L4,7E8,(a,a))$r3413$0(2L4,(a,a))$S714$0(2L4,7(a,a))$S215$0(2L4,7(2a,a))$S316$0(2L4,7(2a3,a))$r2517$0(2L4,7(2E5,a))$r4418$0(2L4,7(2L4,a))$S719$0(2L4,7(2L4,7a))$S320$0(2L4,7(2L4,7a3))$r2821$0(2L4,7(2L4,7E8))$r3422$0(2L4,7(2L4))$S623$0(2L4,7(2L4)6)$r1824$0(2L4,7E8)$r3425$0(2L4)$S626$0(2L4)6$r1127$0E1$acc六、把下面的語句翻譯成四元式序列。(只給出最后結(jié)果,設(shè)LABEL當前值為100)whileA<CdoifA<0thenA:=A+1elseA:=A+2100:? j<, A,?C,?102101: ?j, -, -, 110102: ?j<,?A, 0, 104103: j, -, -, 107104: ?+,?A, 1, T1105:??:=

溫馨提示

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

最新文檔

評論

0/150

提交評論