文档详情

第7讲练习题答案.pdf

发布:2018-08-09约4.38万字共37页下载文档
文本预览下载声明
《编译原理》课后习题答案第七章 第 7 章 LR 分析 第 1 题 已知文法 A→aAd|aAb|ε 判断该文法是否是 SLR(1)文法,若是构造相应分析表,并对输入串 ab#给出分析过程。 答案: 文法: A→aAd|aAb|ε 拓广文法为 G′,增加产生式 S′→A 若产生式排序为: 0 S →A 1 A →aAd 2 A →aAb 3 A →ε 由产生式知: First (S ) = {ε,a} First (A ) = {ε,a} Follow(S ) = {#} Follow(A ) = {d,b,#} G′的 LR(0)项目集族及识别活前缀的 DFA 如下图所示: 在 I0 中: A →.aAd 和A →.aAb 为移进项目,A →.为归约项目,存在移进-归约冲突,因此所给文法 不是 LR(0)文法。 在 I 、I 中: 0 2 Follow(A) ∩{a}= {d,b,#} ∩{a} 盛威网( )专业的计算机学习网站 1 《编译原理》课后习题答案第七章 所以在 I 、I 中的移进-归约冲突可以由 Follow集解决,所以 G 是SLR(1)文法。 0 2 构造的 SLR(1)分析表如下: 题目 1 的SLR(1)分析表 状态(State) Action Goto a d b # A 0 S2 r3 r3 r3 1 1 acc 2 S2 r3 r3 r3 3 3 S4 S5 4 r1 r1 r1 5 r2 r2 r2 题目 1 对输入串 ab#的分析过程 剩余输入串 状态栈(state stack) 文法符号栈 动作(action) (input left) 0 # ab#Shift 0 2 #a b#Reduce by :A →ε 0 2 3 #aA b#Shift 0 2 3 5
显示全部
相似文档