1、第 1 页 共 27 页编译原理与技术课程习题集西南科技大学成人、网络教育学院 版权所有习题【说明】:本课程编译原理与技术 (编号为 03002)共有简答题,计算题 1,计算题 2,问答与作图题,计算题 3,计算题 4,计算题 5等多种试题类型,其中,本习题集中有简答题等试题类型未进入。一、计算题 11. 已知 NFA M1、将 NFA M 确定化为 DFA M;2、求 DFA M 的正规式;2. 已知正规式:a +b(b|ab)*1、求等价的 NFA;2、求等价的 DFA;3. 已知正规式(a)b*)*1、求等价的 NFA;2、将 NFA 确定化3、若所求 DFA 可最小化,则求其最小化 D
2、FA;若无,说明原因。4. 写出字母表 = a, b上语言 L = w | w中 a的个数是偶数的正规式,并画出接受该语言的最简 DFA。第 2 页 共 27 页5. 有文法 GS : S aC | aA A aC C bC |b1、求等价的 NFA;2、求等价的 DFA;二、计算题 26. 将文法 GS:SaAAAS|BcBBi|i 1、消除左递归;2、证明该文法消除左递归后是 LL(1)文法? 3、给出相应的 LL(1)分析表。7. 已知文法 G(S):EaTb|iE|iTTE|E1、提公因子和消除左递归;2、计算每个非终结符的 FIRST和 FOLLOW;3、证明该文法是否为 LL(1)
3、文法?8. 已知文法 G(S)为:E E or T | T第 3 页 共 27 页T T and F | FF not F | ( E ) | true | false1、对文法消除左递归;2、计算消除左递归后的文法的每个非终结符的 FIRST和 FOLLOW;3、判断消除左递归后的文法是否是 LL(1) 文法。9. 已知文法 G(D)为: Dint L| real LLL,id | id1、提公因子和消除左递归;2、计算每个非终结符的 FIRST和 FOLLOW;3、证明该文法是否为 LL(1)文法?10. 已给文法 GS:S SaP | Sf | PP qbP | q 1、对文法提公因子和
4、消除左递归,得到其 LL()文法;2、对 LL()文法计算每个非终结符的 FIRST和 FOLLOW;3、给出 LL()文法的 LL()分析表。三、问答与作图题11. 已知文法 G(S)为:SS+DD*SDDD,HH Ha (S) 1、给出句型“(D,Ha) ”最左推导和最右推导;2、给出句型“D*D+D” 的语法树;第 4 页 共 27 页3、给出句型“(D,Ha) ”的短语和素短语;12. 已知文法 G(S)为:ETE TTF T * FF(E) i1、给出该文法的类型及名称;2、给出句型“(F * F i)” 最左推导和最右推导;3、给出句型“(F* F i)” 的短语和句柄、素短语;4
5、、给出句型“i * ii”的语法树;13. 已知文法 GS:S aSbSbSaS1、给出句型“abbaS”的最左推导和最右推导。2、给出句型“abbaS”的短语和素短语和句柄。3、判断此文法是否具有二义性,并证明。14. 已知文法 GE:E E+EE*E(E) FFi1、给出该文法的类型及名称;2、给出句型“F+(F*F)”的短语和素短语和句柄。3、判断此文法是否具有二义性,并证明。15. 已知文法 GS:Sif B S else Sif B SBb1、给出该文法的类型及名称;第 5 页 共 27 页2、证明句型“if b a else if b a”是该文法的句型,并求其短语、素短语和句柄;
6、3、给出句型”if B if B S else S”的语法树。 四、计算题 316. 已知文法 G(S):SaAcBdAbA|eBf1、求出该文法的 FIRSTVT集和 LASTVT集;2、求出该文法的算符优先表。17. 已知文法 G(S):S var D : TD D , i | iT real | char1、求出该文法的 FIRSTVT集和 LASTVT集;2、求出该文法的算符优先表。18. 已知文法 G(S):S a | |(T)T T , S | S1、求出该文法的 FIRSTVT集和 LASTVT集;2、求出该文法的算符优先表。19. 已知文法 G(E):E E+T|TT T*F|
7、F第 6 页 共 27 页F i1、 求出该文法的 FIRSTVT集和 LASTVT集;2、求出该文法的算符优先表。20. 对文法 G(S):S a | b | (T)T T,S | S1、构造各非终结符的 FIRSTVT 和 LASTVT 集合;2、构造算符优先表。五、计算题 421. 已知文法 G(S)为: S AA Ab | bBaB aAc | a | aAb给出文法的项目集规范族。22. 已知文法 G(E):1. E E+T2. E T 3. T T*F 4. T F5. F (E)6. F i 的 LR 分析表为:Acction Goto S i + * ( ) $ E T F0
8、S5 S4 1 2 31 S6 Acc 2 r2 s7 r2 r2 第 7 页 共 27 页3 r4 r4 r4 r4 4 S5 S4 8 2 35 r6 r6 r6 r6 6 S5 S4 9 37 S5 S4 108 S5 S11 9 r1 S7 r1 r1 10 r3 r3 r3 r3 11 r5 r5 r5 r5 请按以下格式给出“i+i*i$ ”的 LR 分析过程。步骤 栈 输入 动作 说明23. 已知文法 G(S): S(L) | aLL,S | S给出文法的项目集规范族。24. 已知文法 G(S ): S(L) | aLL,S | S的项目集规范族如下:第 8 页 共 27 页构造
9、其的 SLR 分析表。25. 已知文法 GS:SSA|AAa1、求其识别活前缀的项目集规范族2、构造其 SLR(1)分析表。六、计算题 526. 已知文法 G(L)为:LEnE E+T|TT T*F| FF digit根据 S 属性定义,求表达式为 3*5+4 的带注释分析树。27. 已知表达式 S=ABC ;1、求其后缀表示2、求其用布尔表达式的控制流翻译方法翻译的四元式。I0:S SS (L)S aI1:S SI2:S( L)L L,SL SS (L)S aI3:S aI4:S (L)S L ,SI5:L SI6:S (L)I7:S L, SS (L)S aI8:S L,S S(a (aa
10、(SL),S第 9 页 共 27 页28. 将下列程序段翻译成四元式序列并划分基本块:A=MN;B= MN;IF ABC=N;ELSE C=M;29. 翻译下列语句为逆波兰式。if XD=H=(S)=(S+D)=(D+D)=(D,H+D)=(D,H+H)=(D,H+a) (一步 0.25分,共 2分)最右推导:S=D=H=(S)=(S+D)=(S+H)=(S+a)=(D+a)=(D,H+a) (一步 0.25分,共 2分)语法树: (一树分,共分)短语:“(D,Ha)” , “D,Ha” , “D,H”, “a” (2 分)素短语:“D,H” , “a ” (2 分)12. 2 型,上下文无关
11、文法;(2 分)最左推导:E=T=F=(E)=(E+T)=(T+T)=(T*F+T)=(F*F+T)=(F*F+F) (一步 0.25分,共 2分)D+SD*SDS*DSD+SDS第 17 页 共 27 页最右推导:E=T=F=(E)=(E+T)=(E+F)=(T+F)=(T*F+F)=(F*F+F)(一步 0.25分,共 2分)短语:F*F , F , F*F+ F , (F*F+F) (分)句柄:F (分)素短语:F *F (分)语法树: (树 2分)13. 最左推导:S aSbS abS ab bSaSabbaS(一步 0.5 分,共分)最右推导:S aSbS aSb bSaS aSbb
12、aSabbaS(一步 0.5 分,共分)短语:、baS、abbaS;(2 分)素短语:baS (1 分)S aSbS abS ab aSbSababS ababS aSbS a bSaS bS abaSbSababS abab句子 abab 有种不同的推导,文法具有二义性*+ T E E EFiFiFiT第 18 页 共 27 页(判断正确 1 分,证明 4 分,共 5 分)14. 2 型,上下文无关文法;(2 分)短语:F、F*F、(F*F)、F+(F*F);(2 分)素短语:F*F ;句柄:F;(3 分)EE+EF+Ei+Ei+E*Ei+F*E i+i*Ei+i*Fi+i*iEE*EE+E
13、*E F+E*Ei+E*Ei+F*Ei+i*Ei+i*Fi+i*i句子 i+i*i 有种不同的推导,文法具有二义性(判断正确 1 分,证明 4 分,共 5 分)15. 2 型,上下文无关文法;(2 分)S=if B S else S=if b S else S=if b a else S=if b a else if B S=if b a else if b S =if b a else if b a句型“if b a else if b a”是文法文法 GS的句型(2 分)短语:b、a、if b a、if b a else if b a;(2 分)素短语:b、a;(分)句柄:;(分)Sels
14、eSif Bif BSSBifSSelseSif B S第 19 页 共 27 页(一树 2分,共分)四、计算题 316. (1)求 FIRSTVT和 LASTVT FIRSTVT(S)= a LASTVT(S) = d FIRSTVT(A)=b,e LASTVT(A) =b,eFIRSTVT(B)= f LASTVT(B) = f (一个 1分,共分)(2)关系表 a b c d e f #a e f # * i # b ( , ,A,B,(8);(6) (=,N, ,C);(7) (J, , ,(9);(8) (=,M, , C);(9) ( )(一条 1分,共分)2、 基本块:(15)( 6、7)( 8)(9) (一块 1分,共 4分)29. 逆波兰式:X Y 【p1】 JPT X X 1 + = 【p2】 JPF p1C C X + =p2 (条件正确 1 分,分支正确一个 2 分,跳转正确一个 2 分,标注正确一个 1.5分,共 12 分)30. 四元式:第 27 页 共 27 页(1)(j,X,Y,(5);(2)(+,C , X,T1)(3)(=,T1,C);(4)(J,(7)(5)(+,X,1,T2);(6)(=,T2,X)(7)( )(每条 2 分,共 12 分)七、简答题(略)