编译原理 第7章习题解答
更新时间:2023-10-06 18:38:01 阅读量: 综合文库 文档下载
- 编译原理推荐度:
- 相关推荐
第七章 习题解答
7.1 给定文法: S?(A) A?ABB A?B B?b B?c
① 构造它的基本LR(0)项目集; ② 构造它的LR(0)项目集规范族; ③ 构造识别该文法活前缀的DFA;
④ 该文法是SLR文法吗?若是,构造它的SLR分析表。 7.2 给定文法: E?EE+ E?EE*
E?a
① 构造它的LR(0)项目集规范族;
② 它是SLR(1)文法吗?若是,构造它的SLR(1)分析表;
③ 它是LR(1)文法吗?若是,构造它的LR(1)分析表; ④ 它是LALR(1)文法吗?若是,构造它的LALR分析表。 7.3 给出一个非LR(0)文法。
7.4 给出一个SLR(1)文法,但它不是LR(0)文法,构造它的SLR分析表。
7.5 给出一个LR(1)文法,但它不是LALR(1)文法,构造它的规范LR(1)分析表。 7.6 给定二义性文法: ① E?E+E ② E?E*E ③ E?(E) ④ E?id
用所述的无二义性规则和(或)另加一些无二义性规则,例如,给算符*、+施加某种结合规则。 ① 构造它的LR(0)项目集规范族及识别活前缀的DFA; ② 构造它的LR分析表。
习题参考答案
7.1 解:文法的基本LR(0)项目集为 S→.(A) S→(.A) S→(A.) S→(A). A→.ABB A→A.BB A→AB.B A→ABB. A→.B A→B. B→.b B→b. B→.c B→c.
构造该文法的识别活前缀的DFSA如下图所示:
I0 S→.(A) ( I7 S→(A). ) S→(A.) A→A.BB B→.b B→.c b c I1 S→(.A) A→.ABB A→.B B→.b B→.c B b A→B. c I2 A B I6 A→AB.B B→.b B→.c b c B I8 A→ABB. I3 I4 B→b. 文法的识别活前缀的DFSA
I5 B→c. 该文法的LR(0)项目集规范族={I0,I1,I2,I3,I4,I5,I6,I7,I8} 因为在构造出来的识别活前缀的DFA中,每一个状态对应的项目集都不含有移进-归约、归约-归约冲突,所以该文法是LR(0)文法,当然也是SLR文法。 因为 FOLLOW(S)={#}
FOLLOW(A)=FIRST{)}∪FIRST(BB)={),b,c} FOLLOW(B)=FIRST(B)∪FOLLOW(A)={b,c,)} 其对应的SLR(1)分析表如下表所示。
文法G[S]的SLR(1)分析表
状态 0 1 2 3 4 5 6 7 8 ACTION b GOTO ) c ( S1 # A B S4 S4 r3 r4 r5 S4 S5 S5 r3 r4 r5 S5 2 3 6 S7 r3 r4 r5 8 acc r2 r2 r2 7.2 解:首先构造增广文法如下: S→E 0 E→EE+ 1 E→EE* 2
E→a 3
(1) 构造它的LR(0)项目集规范族如下图所示。 该文法的LR(0)项目集规范族={I0,I1,I2,I3,I4,I5}
(2) 因为在识别活前缀的DFSA的每一个状态中,都不存在移进-归约冲突和归约-归约冲突,所以文法是LR(0)文法,当然也是SLR(1)文法。 因为 FOLLOW(E)={#,+,*,a}
所以该文法对应的SLR(1)分析表如下表所示。
I1I0S→.EE→.EE+E→.EE*E→.aaES→E.E→E.E+E→E.E*E→.EE+E→.EE*E→.aaE→a.I3EI4E→EE.+E→EE.*+E→EE+.E→E.E+E→E.E*EI5E→.EE+E→EE*.E→.EE**E→.aaI2 文法的LR(0)项目集规范族
文法的SLR(1)分析表
状态 0 1 2 3 4 5 ACTION a S2 S2 r3 S2 r1 r2 + GOTO * # E 1 3 acc r3 r3 S4 r1 r2 r3 S5 r1 r2 7 r1 r2 (3) 该文法是SLR(1)文法,当然也是LR(1)文法。它的以LR(1)项目集为状态的识别活前缀的DFSA如下图所示。相应的LR(1)分析表如表所示。
I1[S→E.,#][E→E.E+,#/a][E→E.E*,#/a][E→.EE+,+/*/a][E→.EE*,+/*/a][E→.a,+/*/a]I0EEI3[E→EE.+,#/a][E→EE.*,#/a][E→E.E+,+/*/a][E→E.E*,+/*/a][E→.EE+,+/*/a][E→.EE*,+/*/a][E→.a,+/*/a]aEI5+[E→EE+.,#/a]I6*[E→EE*.,#/a]aI4[E→a.,+/*/a]I7a[E→EE.+,+/*/a][E→EE.*,+/*/a][E→E.E+,+/*/a][E→E.E*,+/*/a][E→.EE+,+/*/a][E→.EE*,+/*/a][E→.a,+/*/a]I8+E*[E→EE+.,+/*/a]I9[E→EE*.,+/*/a][S→.E,#][E→.EE+,#/a][E→.EE*,#/a][E→.a,#/a]I2a[E→a.,#/a] 文法的以LR(1)项目集为状态的识别活前缀的DFSA
文法的LR(1)分析表
状态 0 1 2 3 ACTION a S2 S4 r3 S4 + GOTO * # E 1 3 acc r3 S5 S6 7 4 5 6 7 8 9 r3 r1 r2 S4 r1 r2 r3 r3 r1 r2 7 S8 r1 r2 S9 r1 r2 (4) 由于文法的以LR(1)项目集为状态的识别活前缀的DFSA中,状态I2和I4、I3和I7、I5和I8、I6和I9是同心项目集,将它们合并后不会产生冲突。因而可构造文法的LALR(1)分析表如下表所示。
文法的LALR(1)分析表
状态 0 1 24 37 58 69 ACTION a S24 S24 r3 S24 r1 r2 + GOTO * # E 1 37 acc r3 r3 S58 r1 r2 r3 S69 r1 r2 37 r1 r2 7.3 解:构造二义性文法G:
S?aAbScS
S?aAbS G不是LR(0)文法。 7.4 解:构造下面文法G: S?bASB|bA S?dSa|b B?cAa|c
然后构造其SLR分析表。(略) 7.5 解:构造下面的文法G: S?aAa|aBb|bAb|bBa A?x B?x
然后构造其LR(1)分析表。(略) 7.6 解:首先构造增广文法如下: S→E 0 E→E+E 1 E→E*E 2
E→(E) 3 E→id 4
(1) 构造它的识别活前缀的DFSA如下图所示。
I4I1+S→E.E→E.+EE→E.*EES→.EE→.E+EE→.E*EE→.(E)E→.idid*I5E→E+.EEE→.E+EE→.E*E(E→.(E)E→.idI7E→E+E.+E→E.+EE→E.*E*I0E→E*.EE→.E+EE→.E*EEidE→.(E)(E→.idI2E→(.E)E→.E+EEE→.E*E(idE→.(E)E→.id+*E→E*E.E→E.+EE→E.*EI6E→(E.)*E→E.+EE→E.*E+)I9E→(E).I8(I3E→id. 该文法的LR(0)项目集规范族={I0,I1,I2,I3,I4,I5,I6,I7,I8,I9} (2) 构造它的LR分析表如下表所示。
文法有冲突的LR分析表
状态 0 1 2 3 4 5 6 7 8 9 ACTION id S3 GOTO ( S2 + * ) # E 1 S4 S5 acc S3 r4 S3 S3 S2 r4 S2 S2 6 r4 r4 r4 r4 r4 7 8 S4 r1/S4 r2/S4 r3 S5 r1/S5 r2/S5 r3 S9 r1 r2 r3 r1 r2 r3 r1 r2 r3 r1 r2 r3 由于识别文法活前缀的DFSA中,状态I7和I8都存在“移进-归约”冲突,同时, FOLLOW(E)={#,),+,*}
即使构造SLR分析表也无法避免冲突。
为此规定*的优先级高于+,且它们均服从左结合,得到无冲突的LR分析表如下表所示。
文法无冲突的LR分析表
状态 0 1 2 3 ACTION id S3 GOTO ( S2 + * ) # E 1 S4 S5 acc S3 S2 6 r4 r4 r4 r4 4 5 6 7 8 9 S3 S3 S2 S2 r4 7 8 S4 r1 r2 r3 S5 S5 r2 r3 S9 r1 r2 r3 r1 r2 r3
正在阅读:
编译原理 第7章习题解答10-06
全国2013年1月自学考试康复护理学试题04-25
广西旅游业发展基本情况03-23
工程测量基础03-31
java笔试题答案详解10-05
合并财务报表习题04-18
乡村教师学习现状及对策研究11-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 编译
- 解答
- 原理
- 探索计算机网络课程的教学改革
- 二年级数学用乘法解决问题教案 - 图文
- 红塔集团玉溪卷烟厂参观实习报告 - 图文
- 王斌 路基路面作业指导书
- 环境法学答案
- 教学进度表:马克思主义哲学前沿问题研究
- 大专护士考试儿科题库模拟试题精编(二)5 - 7章
- C语言程序设计入门经典例题
- 2019届 高考政治人教版必修4:第三单元 第十课 创新意识与社会进步 课后达标知能提升
- 许崇德版宪法(章节习题及参考答案)
- 厦门双十中学2013届高三期中考试 生物
- 交警直属一大队2011年工作总结
- 1-ESD控制文件 - 图文
- 邯郸市科技专项计划项目汇报提纲
- 网络编辑部部门规划1
- 精品转载:抗战期间国军火炮杂谈
- 《反对邪教 崇尚科学》教案
- 教育学习文章好书推介:《妞妞 - 一个父亲的札记》
- 八年级上册词汇练习
- 最新2018年部编版小学语文二年级上册第一次月考(第一二单元)试卷