編譯原理考試試題及答案_第1頁
編譯原理考試試題及答案_第2頁
編譯原理考試試題及答案_第3頁
編譯原理考試試題及答案_第4頁
編譯原理考試試題及答案_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 編譯原理考試試題及答案(附錄)一、判斷題:1.一個上下文無關(guān)文法的開始符,可以是終結(jié)符或非終結(jié)符。 ( X )2.一個句型的直接短語是唯一的。 ( X )3.已經(jīng)證明文法的二義性是可判定的。 ( X )4.每個基本塊可用一個DAG表示。 ( )5.每個過程的活動記錄的體積在編譯時可靜態(tài)確定。 ( )6.2型文法一定是3型文法。 ( x )7.一個句型一定句子。 ( X )8.算符優(yōu)先分析法每次都是對句柄進(jìn)行歸約。 (應(yīng)是最左素短語) ( X )9.采用三元式實現(xiàn)三地址代碼時,不利于對中間代碼進(jìn)行優(yōu)化。 ( )10.編譯過程中,語法分析器的任務(wù)是分析單詞是怎樣構(gòu)成的。 ( x )11.一個優(yōu)先

2、表一定存在相應(yīng)的優(yōu)先函數(shù)。 ( x )12.目標(biāo)代碼生成時,應(yīng)考慮如何充分利用計算機(jī)的寄存器的問題。 ( )13.遞歸下降分析法是一種自下而上分析法。 ( )14.并不是每個文法都能改寫成LL(1)文法。 ( )15.每個基本塊只有一個入口和一個出口。 ( )16.一個LL(1)文法一定是無二義的。 ( )17.逆波蘭法表示的表達(dá)試亦稱前綴式。 ( )18.目標(biāo)代碼生成時,應(yīng)考慮如何充分利用計算機(jī)的寄存器的問題。 ( )19.正規(guī)文法產(chǎn)生的語言都可以用上下文無關(guān)文法來描述。 ( )20.一個優(yōu)先表一定存在相應(yīng)的優(yōu)先函數(shù)。 ( )21.3型文法一定是2型文法。 ( )22.如果一個文法存在某個句

3、子對應(yīng)兩棵不同的語法樹,則文法是二義性的。 ( )二、填空題:1.( 最右推導(dǎo) )稱為規(guī)范推導(dǎo)。2.編譯過程可分為 ( 詞法分析 ) ,(語法分析),(語義分析和中間代碼生成),(代碼優(yōu)化)和(目標(biāo)代碼生成)五個階段。3.如果一個文法存在某個句子對應(yīng)兩棵不同的語法樹,則稱這個文法是( )。 4.從功能上說,程序語言的語句大體可分為( )語句和( )語句兩大類。5.語法分析器的輸入是( ),其輸出是( )。6.掃描器的任務(wù)是從( )中識別出一個個( )。7.符號表中的信息欄中登記了每個名字的有關(guān)的性質(zhì),如( )等等。8.一個過程相應(yīng)的DISPLAY表的內(nèi)容為( )。9.一個句型的最左直接短語稱為

4、句型的( )。10.常用的兩種動態(tài)存貯分配辦法是( )動態(tài)分配和( )動態(tài)分配。11.一個名字的屬性包括( )和( )。12.常用的參數(shù)傳遞方式有( ),( )和( )。13.根據(jù)優(yōu)化所涉及的程序范圍,可將優(yōu)化分成為( ),( )和( )三個級別。14.語法分析的方法大致可分為兩類,一類是( )分析法,另一類是( )分析法。15.預(yù)測分析程序是使用一張( )和一個( )進(jìn)行聯(lián)合控制的。16.常用的參數(shù)傳遞方式有( ),( )和( )。17.一張轉(zhuǎn)換圖只包含有限個狀態(tài),其中有一個被認(rèn)為是( )態(tài);而且實際上至少要有一個( )態(tài)。18.根據(jù)優(yōu)化所涉及的程序范圍,可將優(yōu)化分成為( ),( )和( )

5、三個級別。19.語法分析是依據(jù)語言的( )規(guī)則進(jìn)行。中間代碼產(chǎn)生是依據(jù)語言的( )規(guī)則進(jìn)行的。20.一個句型的最左直接短語稱為句型的( )。21.一個文法G,若它的預(yù)測分析表M不含多重定義,則該文法是( )文法。22.對于數(shù)據(jù)空間的存貯分配, FORTRAN采用( )策略, PASCAL采用( )策略。23.如果一個文法存在某個句子對應(yīng)兩棵不同的語法樹, 則稱這個文法是( )。24.最右推導(dǎo)亦稱為( ),由此得到的句型稱為( )句型。25.語法分析的方法大致可分為兩類,一類是( )分析法,另一類是( )分析法。26.對于文法G,僅含終結(jié)符號的句型稱為 ( )。27.所謂自上而下分析法是指( )

6、。28.語法分析器的輸入是( ),其輸出是( )。29.局限于基本塊范圍的優(yōu)化稱( )。30.預(yù)測分析程序是使用一張( )和一個( )進(jìn)行聯(lián)合控制的。31.2型文法又稱為( )文法;3型文法又稱為( )文法。32.每條指令的執(zhí)行代價定義為( )。33.算符優(yōu)先分析法每次都是對( )進(jìn)行歸約。三、名詞解釋題:1.局部優(yōu)化2.二義性文法3.DISPLAY表4.詞法分析器5.最左推導(dǎo)6.語法7.文法8.基本塊9.語法制導(dǎo)翻譯10.短語11.待用信息12.規(guī)范句型13.掃描器14.超前搜索15.句柄16.語法制導(dǎo)翻譯17.規(guī)范句型18.素短語19.語法20.待用信息21.語義四、簡答題:1.寫一個文法

7、G, 使其語言為 不以0開頭的偶數(shù)集。2.已知文法G(S)及相應(yīng)翻譯方案SaAb print “1”Sa print “2”AAS print “3”Ac print “4”輸入acab, 輸出是什么?3. 已知文法G(S)SbAaA(B | aBAa)寫出句子b(aa)b的規(guī)范歸約過程。4. 考慮下面的程序:procedure  p(x, y, z);beginy:=x+y;z:=z*z; end beginA:=2;B:=A*2;P(A, A, B);Print A, B end.試問,若參數(shù)傳遞的方式分別采用傳地址和傳值時,程序執(zhí)行后輸出 A, B的值是什么? 5.文法G(S)

8、SdABAaA| aBBb| 描述的語言是什么?6.證明文法G(S) SSaS| 是二義性的。7.已知文法G(S) SBAABS| dBaA| bS | c的預(yù)測分析表如下 a b c d # SSBASBASBA AABSABSABSAd BBaA BbS Bc給出句子 adccd 的分析過程。8.寫一個文法G, 使其語言為 L(G)=albmclanbn| l>=0, m>=1, n>=2 9.已知文法G(S):Sa| (T)TT,S|S的優(yōu)先關(guān)系表如下:關(guān)系a(),a-.>.>(<.<.=.<.)-.>.>,<.<.

9、>.>請計算出該優(yōu)先關(guān)系表所對應(yīng)的優(yōu)先函數(shù)表。10.何謂優(yōu)化?按所涉及的程序范圍可分為哪幾級優(yōu)化?11.目標(biāo)代碼有哪幾種形式?生成目標(biāo)代碼時通常應(yīng)考慮哪幾個問題?12.一字母表=a, b,試寫出上所有以a為首的字組成的正規(guī)集相對應(yīng)的正規(guī)式。13.基本的優(yōu)化方法有哪幾種?14.寫一個文法G, 使其語言為 L(G)=abncn| n015.考慮下面的程序:procedure p(x, y, z);begin y:=y+z; z:=y*z+xend;begin a:=2; b:=3; p(a+b, b, a); print aend.試問,若參數(shù)傳遞的方式分別采用傳地址和傳值時,程序執(zhí)行

10、后輸出 a的值是什么? 16.寫出表達(dá)式ab*(c-d)/e的逆波蘭式和三元序列。17.證明文法G(A) AAA | (A)| 是二義性的。18.令=a,b,則正規(guī)式a*b|b*a 表示的正規(guī)集是什么?19.何謂DISPLAY表?其作用是什么?20.考慮下面的程序:procedure  p(x, y, z);beginy:=y+2;z:=z+x; end begina:=5;b:=2;p(a+b, a-b, a);print a end.試問,若參數(shù)傳遞的方式分別采用傳地址和傳值時,程序執(zhí)行后輸出 a的值是什么? 21.寫一個文法G, 使其語言為 L(G)=anbncm| n>

11、0為奇數(shù), m>0為偶數(shù)22.寫出表達(dá)式a:=(b+c)*e+(b+c)/f的逆波蘭式和三元序列。23.一個文法G別是LL(1)文法的充要條件是什么?24.已知文法GSSS*aF | aF | *aFF+aF | +a消除文法左遞歸和提公共左因子。25.符號表的作用是什么?符號表查找和整理技術(shù)有哪幾種?五、計算題:1.設(shè)文法G(S): S | a | (T) TT,S | S 消除左遞歸; 構(gòu)造相應(yīng)的FIRST和FOLLOW集合; 構(gòu)造預(yù)測分析表 2.語句 if E then S(1) 改寫文法,使之適合語法制導(dǎo)翻譯; (2) 寫出改寫后產(chǎn)生式的語義動作。 3.設(shè)文法G(S):S(T)

12、| aTT+S | S(1)計算FIRSTVT 和LASTVT; (2)構(gòu)造優(yōu)先關(guān)系表。 4.設(shè)某語言的for語句的形式為for i:E(1) to E(2) do S其語義解釋為i:E(1)LIMIT:E(2)again: if iLIMIT thenBeginS;i:i1goto againEnd;(1)寫出適合語法制導(dǎo)翻譯的產(chǎn)生式;(2)寫出每個產(chǎn)生式對應(yīng)的語義動作。5.把語句while a<10 doif c>0 then a:=a+1else a:=a*3-1;翻譯成四元式序列。6.設(shè)有基本塊D:=A-CE:=A*CF:=D*ES:=2T:=A-C Q:=A*CG:=2*

13、SJ:=T*QK:=G*5L:=K+JM:=L假設(shè)基本塊出口時只有M還被引用,請寫出優(yōu)化后的四元序列。7.已知文法G(S)Sa | | (T)TT,S | S(1) 給出句子(a,(a,a)的最左推導(dǎo);(2) 給出句型(T,S),a)的短語, 直接短語,句柄。8.對于 C 語言do S while E語句 (1)改寫文法,使之適合語法制導(dǎo)翻譯; (2)寫出改寫后產(chǎn)生式的語義動作。9.已知文法G(S) SaAcBe AAb| b Bd(1)給出句子abbcde的最左推導(dǎo)及畫出語法樹;(2)給出句型aAbcde的短語、素短語。 10.設(shè)文法G(S): S(T) | aS | a TT,S | S

14、消除左遞歸和提公共左因子; 構(gòu)造相應(yīng)的FIRST和FOLLOW集合; 構(gòu)造預(yù)測分析表。11.把語句 if X>0 Y<0 then while X>0 do X:=A*3 else Y:=B+3;翻譯成四元式序列。12.已知文法G(S) EE+T | T TT*F| F F(E)| i (1) 給出句型 (i+i)*i+i的最左推導(dǎo)及畫出語法樹; (2) 給出句型 (E+T)*i+F 的短語,素短語和最左素短語。 13.設(shè)文法G(S):ST | STTU |TUUi |-U(1)計算FIRSTVT 和LASTVT; (2)構(gòu)造優(yōu)先關(guān)系表。 參考答案一、是非題:1.×

15、 2.× 3.× 4. 5. 6.× 7.× 8.× 9. 10.× 11.×12. 13.× 14. 15. 16. 17.× 18. 19. 20.× 21. 22.二、填空題:1.(最右推導(dǎo))2.(詞法分析),(語法分析),(中間代碼生成),(代碼優(yōu)化),(目標(biāo)代碼生成)3.(二義性的)4.(執(zhí)行性),(說明性)5.(單詞符號),(語法單位)。6.(源程序),(單詞符號)7.(類型、種屬、所占單元大小、地址)8.(現(xiàn)行活動記錄地址和所有外層最新活動記錄的地址)9.(句柄)10.(棧式),(

16、堆式)11.(類型),(作用域)12.(傳地址),(傳值),(傳名)13.(局部優(yōu)化),(循環(huán)優(yōu)化),(全局優(yōu)化)14.(自上而下),(自下而上)15.(分析表),(符號棧)16.(傳地址),(傳值),(傳名)17.(初),(終)18.(局部優(yōu)化),(循環(huán)優(yōu)化),(全局優(yōu)化)19.(語法),(語義)20.(句柄)21.(LL(1) 文法)22.(靜態(tài)),(動態(tài))23.(二義性文法)24.(規(guī)范推導(dǎo)),(規(guī)范)25.(自上而下),(自下而上)26.(句子)27.(從開始符號出發(fā),向下推導(dǎo),推出句子)28.(單詞符號),(語法單位)29.(局部優(yōu)化)30.(分析表),(符號棧)31.(上下文無關(guān)文

17、法),(正規(guī))32.(指令訪問主存次數(shù)加1)33.(最左素短語)三、名詞解釋題: 1.局部優(yōu)化-局限于基本塊范圍的優(yōu)化稱。2.二義性文法-如果一個文法存在某個句子對應(yīng)兩棵不同的語法樹,則稱這個文法是二義性文法。3.DISPLAY表-過程的嵌套層次顯示表,記錄該過程的各外層過程的最新活動記錄的起始地址。4.詞法分析器-執(zhí)行詞法分析的程序。5.最左推導(dǎo)-任何一步=>都是對中的最右非終結(jié)符替換。6.語法-一組規(guī)則,用它可形成和產(chǎn)生一組合式的程序。7.文法-描述語言的語法結(jié)構(gòu)的形式規(guī)則。8.基本塊-指程序中一順序執(zhí)行的語句序列,其中只有一個入口和一個出口,入口就是其中的第一個語句,出口就是其中的

18、最后一個語句。9.語法制導(dǎo)翻譯-在語法分析過程中,根據(jù)每個產(chǎn)生式所對應(yīng)的語義子程序進(jìn)行翻譯的辦法叫做語法制導(dǎo)翻譯。10.短語-令G是一個文法,S劃文法的開始符號,假定是文法G的一個句型,如果有SA且A,則稱是句型相對非終結(jié)符A的短語。11.待用信息-如果在一個基本塊中,四元式i對A定值,四元式j(luò)要引用A值,而從i到j(luò)之間沒有A的其它定值,則稱j是四元式i的變量A的待用信息。12.規(guī)范句型-由規(guī)范推導(dǎo)所得到的句型。13.掃描器-執(zhí)行詞法分析的程序。14.超前搜索-在詞法分析過程中,有時為了確定詞性,需超前掃描若干個字符。15.句柄-一個句型的最左直接短語。16.語法制導(dǎo)翻譯-在語法分析過程中,根

19、據(jù)每個產(chǎn)生式所對應(yīng)的語義程序進(jìn)行翻譯的方法 叫做語法制導(dǎo)翻譯。17.規(guī)范句型-由規(guī)范推導(dǎo)所得到的句型。18.素短語-素短語是指這樣一個短語,至少含有一個終結(jié)符,并且,除它自身外不再含任何更小的素短語。19.語法-是組規(guī)則,用它可形成和產(chǎn)生一個合式的程序。 20.待用信息-如果在一個基本塊中,四元式i對A定值,四元式j(luò)要引用A值,而從i到j(luò)之間沒有A的其它定值,則稱j是四元式i的變量A的待用信息。21.語義-定義程序的意義的一組規(guī)則。四、簡答題: 1.所求文法是GS:SAB |B A0AAD |CB2 |4 |6 |8C1 |3 |5 |7 |9 |BD0 |C2.輸出是42313.句子b(aa

20、)b的規(guī)范歸約過程:步驟符號棧輸入串動作0#b(aa)b#預(yù)備1#b(aa)b#移進(jìn)2#b(aa)b#移進(jìn)3 #b(a a)b# 移進(jìn)4#b(Aa)b#歸約5 #b(Ma)b#移進(jìn)6#b(Ma)b#移進(jìn)7#b(B b# 歸約8#bAb#歸約9#bAb#移進(jìn)10#S#接受4.傳地址 A=6, B=16傳值 A=2, B=45.L(G)=danbm |n>0, m06.證明: 因為文法GS存在句子aa有兩個不同的最左推導(dǎo),所以文法GS是是二義性的。S=>SaS=>SaSaS=>aSaS=>aaS=>aa S=>SaS=>aS=>aSaS=>

21、;aaS=>aa7.句子 adccd 的分析過程:步驟符號棧輸入串產(chǎn)生式0#Sadccd#1#ABadccd#SBA2#AAaadccd#BaA3#AAdccd#4#Addccd#Ad5#Accd#6#SBccd#ABS7#Scccd# Bc8#S cd# 9#ABcd#Bc10#Acd#11#A d#12#dd#Ad13# 8.所求文法是GS: SAB AaAc | D DbD | bBaBb | aabb9.函數(shù)a(),f4244g552310.優(yōu)化:對程序進(jìn)行各種等價變換,使得從變換后的程序出發(fā),能產(chǎn)生更有效的目標(biāo)代碼。三種級別:局部優(yōu)化、循環(huán)優(yōu)化、全局優(yōu)化11.目標(biāo)代碼通常采用三

22、種形式:機(jī)器語言,匯編語言,待裝配機(jī)器語言模塊。應(yīng)著重考慮的問題: (1)如何使生成的目標(biāo)代碼較短;(2)如何充分利用寄存器,以減少訪問內(nèi)存次數(shù);(3)如何充分利用指令系統(tǒng)的特點。12.正規(guī)式 a ( a | b )*。13.刪除多余運算,代碼外提,強(qiáng)度削弱,變換循環(huán)控制條件,合并已知量,復(fù)寫傳播和刪除無用賦值。14.文法GS:SaB | a Bbc |bBc15.傳值 a=2 傳地址 a=1516.逆波蘭式: abcd-*e/+三元序列: op arg1 arg2 (1) - c d (2) * b (1) (3) / (2) e (4) + a (3)17.證明:因為文法GS存在句子 ()

23、 有兩個不同的最左推導(dǎo),所以文法GS是是二義性的。A=>AA=>(A)A=>()A=>() A=>AA=>A=>(A)=>()18.(a*b|b*a)=a,b,ab,ba,aab,bba19.Display表: 嵌套層次顯示表由于過程嵌套允許內(nèi)層過程引用外層過程定義的數(shù)據(jù),因此,當(dāng)一個過程運行時必須跟蹤它的所有外層過程的最新活動記錄起始地址, display表就是用于登記每個外層過程的最新活動記錄起始地址。20.傳地址 a=12傳值 a=521.所求文法是GS: SAC AaaAbb | ab CccC | cc22.逆波蘭式 abc+e*bc+

24、f/+:=三元序列 op arg1 arg2 (1) + b c (2) * (1) e (3) + b c (4) / (3) f (5) + (2) (4) (6) := a (5) 23.一個文法G別是LL(1)文法的充要條件是: (1) FIRST() FIRST()= (2) 如果 =*>, FIRST() FOLLOW(A)= 24.消除左遞歸SaFS | *aFSS*aFS | F+aF | +a提公共左因子,文法 G(S) SaFS | *aFSS*aFS | F+aFFF |25.作用:登記源程序中出現(xiàn)的各種名字及其信息,以及了解各階段的進(jìn)展?fàn)顩r。主要技術(shù):線性表,對折

25、查找,雜奏技術(shù)。五、計算題:1.(1)消除左遞,文法變?yōu)镚S:S | a | (T)'TST | ST,ST |此文法無左公共左因子。(2)構(gòu)造相應(yīng)的FIRST和FOLLOW集合: FIRST(S)=a, , (, FOLLOW(S)=#, , )FIRST(T)=a, , ( ,F(xiàn)OLLOW(T)=FIRST(T)=, ,F(xiàn)OLLOW(F)=)(3)構(gòu)造預(yù)測分析表:a(),#SSaSS(T)'TTSTTSTTSTTTT,ST2. (1)Cif E thenSCS(1) (2) Cif E then BACK(E.TC, NXQ); C.chain:=E.FC SCS(1) S

26、.chain:=MERG(C.Chain, S(1). Chain)3. (1) FIRSTVT(S)=a, ( FIRSTVT(T)=+, aa, ( LASTVT(S)=a, ) LASTVT(T)=+, a, ) (2) a + ( ) a .> .>+ <. .> <. .>( <. <. <. =. ) .> .> >.4. (1) Ffor i:=E(1) to E(2) do SFS(1)(2) Ffor i:=E(1) to E(2) doGEN(:=, E(1).place, _, entry(i);F.

27、place:=entry(i);LIMIT:=Newtemp;GEN(:=, E(2).place, _, LIMIT);Q:=NXQ;F.QUAD:=q;GEN(j, entry(i), LIMIT, q+2)F.chain:=NXQ;GEN(j, _, _, 0)SFS(1)BACKPATCH(S(1).chain, NXQ); GEN(+, F.place, 1, F.place); GEN(j, _, _, F.QUAD); S.chain:=F.chain5. (1) (j<, a, 10, (3)(2) (j, _, _, (12)(3) (j>, c, 0, (5)(

28、4) (j, _, _, (8)(5) (+, a, 1, T1)(6) (:=, T1, _, a)(7) (j, _, _, (1)(8) (*, a, 13, T2)(9) (-, T2, 1, T3)(10) (:=, T3, _, a)(11) (j, _, _, (1)6.優(yōu)化后的四元序列D:=A-CE:=A*CF:=D*EM:=F+207. 最左推導(dǎo)S=(T)=>(T,S)=>(S,S)=>(a,S)=>(a,(T)=>(a,(T,S)=>(a,(S,S)=>(a,(a,S)=>(a,(a,a)短語 (T,S),a) (T,S),a

29、 (T,S) T,S a直接短語 T,S a句柄 T,S8.(1)Sdo M1 S1 while M2 EM (2)M M.quad=nestquad;Sdo M1 S1 while M2 E backpatch(s1.nextlist, M2.quad); backpatch(E.truelist, M1.quad); S.nextlist=E.falelist; 9.(1) S=>aAcBe=>AAbcBe=>abbcBe=>abbcde(2) 短語: aAbcde, Ab, d 素短語: Ab, d10.(1) S (L) | aS SS | LSL L,SL |

30、(2) FIRST(S)=a, ( FIRST(S)=a, (, FIRST(L)=a, ( FIRST(L)=, FOLLOW(S)=, ), # FOLLOW(S)=, ), #FOLLOW(L)= ) FOLLOW(L)= )(3) ( ) a , # SS (L)S aSSSSSSSSSLLSLLSLL,SL LL11.(1) (j>, X, 0, (5)(2) (j, _, _, (3)(3) (j<, Y, 0, (5)(4) (j, _, _, (11)(5) (j>0, X, 0, (7)(6) (j, _, _, (7)(7) (*, A, 3, T1)(8

31、) (:=, T1, _, N)(9) (j, _, _, (5)(10) (j, _, _, (13)(11) (+, B, 3, T2)(12) (:=, T2, _, Y)12.(1) E=>E+T=>T+T=>T*F+T=>F*F+T=>(E)*F+T=>(E+T)*F+T=>(T+T)*F+T =>(F+T)*F+T=>(i+T)*F+T=>(i+F)*F+T=>(i+i)*F+T=>(i+i)*i+T =>(i+i)*i+F=>(i+i)*i+i (2) 短語 i, F, E+T, (E+T), (

32、E+T)*i, (E+T)*i+F 素短語 i, E+T最左素短語 E+T13.(1) FIRSTVT(S)=, , i, - FIRSTVT(T)=, i, - FIRSTVT(U)=i, - LASTVT(S)=, , i, - LASTVT(T)=, i, - LASTVT(U)=i, -(2) i - S .> .> <. .> <. <. <. .> .> <. - <. .> .> <.一、單項選擇題 1將編譯程序分成若干個“遍”是為了( B ) A提高程序的執(zhí)行效率 B. 使程序的結(jié)構(gòu)更加清晰 C

33、利用有限的機(jī)器內(nèi)存并提高機(jī)器的執(zhí)行效率D利用有限的機(jī)器內(nèi)存但降低了機(jī)器的執(zhí)行效率2不可能是目標(biāo)代碼的是( D ) A匯編指令代碼 B可重定位指令代碼 C絕對指令代碼 D中間代碼3詞法分析器的輸入是( B ) A單詞符號串 B源程序 C語法單位 D目標(biāo)程序4中間代碼生成時所遵循的是( C ) A語法規(guī)則 B詞法規(guī)則 C語義規(guī)則 D等價變換規(guī)則5編譯程序是對( D ) A匯編程序的翻譯 B高級語言程序的解釋執(zhí)行 C機(jī)器語言的執(zhí)行 D高級語言的翻譯6詞法分析應(yīng)遵循( C ) A語義規(guī)則 B語法規(guī)則 C構(gòu)詞規(guī)則 D等價變換規(guī)則7詞法分析器的輸出結(jié)果是( C ) A單詞的種別編碼 B單詞在符號表中的位置

34、 C單詞的種別編碼和屬性值 D單詞屬性值8正規(guī)式M1和M2等價是指( C ) AM1和M2的狀態(tài)數(shù)相等 BM1和M2的有向弧條數(shù)相等 CM1和M2所識別的語言集相等 DM1和M2狀態(tài)數(shù)和有向弧條數(shù)相等9詞法分析器作為獨立的階段使整個編譯程序結(jié)構(gòu)更加簡潔、明確,因此,( B ) A詞法分析器應(yīng)作為獨立的一遍 B詞法分析器作為子程序較好 C詞法分析器分解為多個過程,由語法分析器選擇使用 D詞法分析器并不作為一個獨立的階段10如果L(M1)=L(M2),則M1與M2( A ) A等價 B都是二義的 C都是無二義的 D它們的狀態(tài)數(shù)相等11文法G:SxSx|y所識別的語言是( C ) Axyx B(xy

35、x)* cxnyxn(n0) dx*yx*12文法G描述的語言L(G)是指( A ) A B C D13有限狀態(tài)自動機(jī)能識別( C ) A上下文無關(guān)文法 B上下文有關(guān)文法 C正規(guī)文法 D短語文法14如果文法G是無二義的,則它的任何句子( A ) A最左推導(dǎo)和最右推導(dǎo)對應(yīng)的語法樹必定相同 B最左推導(dǎo)和最右推導(dǎo)對應(yīng)的語法樹可能不同 C最左推導(dǎo)和最右推導(dǎo)必定相同 D可能存在兩個不同的最左推導(dǎo),但它們對應(yīng)的語法樹相同15由文法的開始符經(jīng)0步或多步推導(dǎo)產(chǎn)生的文法符號序列是( C ) A短語 B句柄 C句型 D句子16文法G:EE+T|T TT*P|P P(E)|i則句型P+T+i的句柄為( B ) AP

36、+T BP CP+T+i Di17文法G:Sb|(T) TTS|S則FIRSTVT(T)=( C ) A b,( B b,) C b,(, D b,), 18產(chǎn)生正規(guī)語言的文法為( D ) A0型 B1型 C2型 D3型19任何算符優(yōu)先文法( D )優(yōu)先函數(shù)。 A有一個 B沒有 C有若干個 D可能有若干個20采用自上而下分析,必須( C ) A消除左遞歸 B消除右遞歸 C消除回溯 D提取公共左因子21在規(guī)范歸約中,用( B )來刻畫可歸約串。 A直接短語 B句柄 C最左素短語 D素短語22有文法G:EE*T|T TT+i|i句子1+2*8+6按該文法G歸約,其值為( B ) A23 B42 C

37、30 D1723如果文法是無二義的,那么規(guī)范歸約是指( B ) A最左推導(dǎo)的逆過程 B最右推導(dǎo)的逆過程 C規(guī)范推導(dǎo) D最左歸約的逆過程24文法G:SS+T|T TT*P|P P(S)|i句型P+T+i的短語有( B ) Ai,P+T BP,P+T,i,P+T+i CP+T+i DP,P+T,i25四元式之間的聯(lián)系是通過( B )實現(xiàn)的。 A指示器 B臨時變量 C符號表 D程序變量26后綴式ab+cd+可用表達(dá)式( B )來表示。 Aa+bc+d B(a+b)(c+d) Ca+b(c+d) Da+b+cd27使用間接三元式表示法的主要目的( A ) A便于優(yōu)化處理 B便于表的修改 C節(jié)省存儲空間

38、 D生成中間代碼更容易28表達(dá)式(AB)(CD)的逆波蘭表示為( B ) AABCD BABCD CABCD DABCD二、判斷題1一個確定有限狀態(tài)自動機(jī)中,有且僅有一個唯一的終態(tài)。 ()2設(shè)R和S分別是字母表上的正規(guī)式,則有L(R|S)=L(R)L(S)。 ()3自動機(jī)M1和M2的狀態(tài)數(shù)不同,則二者必不等價。 ()4確定有限自動機(jī)以及非確定有限自動機(jī)都能正確地識別正規(guī)集。 ()5對任意一個右線性正規(guī)文法G,都存在一個NFA M,滿足L(G)=L(M)。 ()6對任意一個右線性正規(guī)文法G,都存在一個DFA M,滿足L(G)= L(M)。()7對任何正規(guī)式e,都存在一個NFA M,滿足L(M)=

39、L(e)。()8對任何正規(guī)式e,都存在一個DFA M,滿足L(M)=L(e)。()9從一個句型到另一個句型的推導(dǎo)過程是唯一的。()10詞法分析作為單獨的一遍來處理較好。 ()11一張轉(zhuǎn)換圖只包含有限個狀態(tài),其中有一個被認(rèn)為是初態(tài),最多只有一個終態(tài)。()12二義文法不是上下文無關(guān)文法。()13自上而下分析法是一種“移進(jìn)歸約”法。()14文法是描述語言的語法結(jié)構(gòu)的形式規(guī)則。()15產(chǎn)生式是定義語法范疇的一種書寫規(guī)則。()16要構(gòu)造行之有效的自上而下的分析器,則必須消除左遞歸。()17如果文法G是無二義的,那么規(guī)范歸約和規(guī)范推導(dǎo)是互逆的兩個過程。()18自下而上的分析法是一種“移進(jìn)歸約”法。()19

40、如果文法G是二義的,那么規(guī)范歸約和規(guī)范推導(dǎo)是互逆的兩個過程。()三、填空題1解釋程序和編譯程序的區(qū)別在于(是否生成目標(biāo)代碼)。2編譯過程通??煞譃?個階段,分別是(詞法分析)、(語法分析)、語義分析與中間代碼產(chǎn)生、代碼優(yōu)化和目標(biāo)代碼生成。3編譯程序工作過程中,第一階段輸入是(源程序),最后階段的輸出為(目標(biāo)代碼)程序。4把語法范疇翻譯成中間代碼所依據(jù)的是(語義規(guī)則)。5目標(biāo)代碼可以是(匯編)指令代碼或(可重定位)指令代碼或絕對機(jī)器指令代碼。6詞法分析的任務(wù)是:輸入源程序,對構(gòu)成源程序的(字符串)進(jìn)行掃描和分解。7源程序中的錯誤通常分為(語法錯誤)和(語義錯誤)兩大類。8(編譯程序)是將源程序翻

41、譯成目標(biāo)程序的程序。9一個上下文無關(guān)文法G包括四個部分:(終結(jié)符號)、(非終結(jié)符號)、(開始符號)和一組(產(chǎn)生式)。10若,則稱這個序列是從到的一個(推導(dǎo))。11設(shè)文法G的開始符號為S,如果則稱是L(G)的一個(句型)。12文法G所產(chǎn)生的句子的全體是文法G所定義的(語言)。13若一個文法存在某個句子對應(yīng)的兩棵不同的語法樹,則稱這個文法是(二義文法)。14程序語言的單詞符號一般可分為五種:(關(guān)鍵字)、(標(biāo)識符)、常數(shù)、(運算符)和界符。15(確定有限自動機(jī)DFA)是非確定有限自動機(jī)NFA的一個特例。16對于正規(guī)文法G和有限自動機(jī)M,若L(G)=L(M),則稱G和M是(等價)的。17若兩個正規(guī)式所表示的正規(guī)集相等,則認(rèn)為二者是(等價)的。18按照語法分析樹的建立方法,語法分析可分為兩類:(自上而下分析)和(自下而上分析)。18規(guī)范歸約中的可歸約串是指(句柄)。19算符優(yōu)先分析中的可歸約串是指(最左素短語)。20(自下而上)語法分析的關(guān)鍵問題是精確定義可歸約串的概念。四、簡答1給出上下文無關(guān)文法的定義。一個上下文無關(guān)文法G是一個四元式(VT,VN,S,P),其中: VT是一個非空有限集,它的每個元素稱為終結(jié)符號; VN是一

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論