资源描述:
《编译原理补充练习》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、随机测试练习乔姆斯基把文法分成4种类型:0型也叫();1型也叫();2型也叫();3型也叫()。自上而下分析方法一般需要消除()和回溯。一般而言,编译器的分析部分包括(),(),()二综合部分包括(),(),()。以上六个阶段都涉及到()管理和()管理。任何NFA都存在一个与之等价的()。短语文法上下文有关文法上下文无关文法正则文法左递归词法分析语法分析语义分析中间代码生成代码优化代码生成符号表出错DFA下面的文法是否是左递归的?如果是,该如何消除?E→E+T
2、TT→T*F
3、FF→(E)
4、id设有文法G[S]:S→S*S
5、S+S
6、(S)
7、a,该文法是
8、否有二义性?为什么?构造下面文法的LL(1)分析表S→aBc
9、bABA→aAb
10、bB→b
11、ε构造其LL(1)分析表,并分析符号串baabbb是否是该文法的句子FIRST(S)={a,b}FIRST(A)={a,b}FIRST(B)={b,ε}FOLLOW(S)={#}FOLLOW(A)={b,#}FOLLOW(B)={c,#}abc#SS→aBcS→bABAA→aAbA→bBB→bB→εB→εLL(1)分析表:步骤符号栈输入串产生式1#Sbaabbb#S→bAB2#BAbbaabbb#3#BAaabbb#A→aAb4#BbAaaabbb#5#BbAa
12、bbb#A→aAb6#BbbAaabbb#7#BbbAbbb#A→b8#Bbbbbbb#9#Bbbbb#10#Bbb#11#B#B→ε12##ACC分析符号串baabbb的过程:设有文法G[S]:S→CC(1)C→cC(2)C→d(3)求:1)拓广文法2)文法的LR(1)项目集规范族3)构造规范LR分析表1)拓广文法S’→SS→CC(1)C→Cc(2)C→d(3)2)LR(1)项目集规范族I0={[S’→•S,#],[S→•CC,#],[C→•cC,c/d],[C→•d,c/d]}I1=GO(I0,S)={[S’→S•,#]}I2=GO(I0,C)=
13、{[S→C•C,#],[C→•cC,#],[C→•d,#]}I3=GO(I0,c)=GO(I3,c)={[C→c•C,c/d],[C→•cC,c/d],[C→•d,c/d]}I4=GO(I0,d)=GO(I3,d)={[C→d•,c/d]}I5=GO(I2,C)={[S→CC•,#]}I6=GO(I2,c)=GO(I6,c)={[C→c•C,#],[C→•cC,#],[C→•d,#]}I7=GO(I2,d)=GO(I6,d)={[C→d•,#]}I8=GO(I3,C)={[C→cC•,c/d]}I9=GO(I6,C)={[C→cC•,#]}状态ACT
14、IONGOTOcd#SC0s3s4121acc2s6s753s3s484r3r35r16s6s797r38r2r29r2