电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第7章作业参考答案

第7章作业参考答案_第1页
1/10
第7章作业参考答案_第2页
2/10
第7章作业参考答案_第3页
3/10
第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(A ) = {d,b,#} G′的LR(0)项目集规范族及识别活前缀的DFA 如下图所示: 在I0 中:A →.aAd 和A →.aAb 为移进项目,A →.为归约项目,存在移进-归约冲突,因此所给文法不是LR(0)文法。 在I0、I2 中:Follow(A) ∩{a}= {d,b,#} ∩{a}=φ 所以在I0、I2 中的移进-归约冲突可以由Follow 集解决,所以 G 是SLR(1)文法。 构造的SLR(1)分析表如下:题目1 的SLR(1)分析表 对输入串ab#的分析过程 10.判断下列各题所示文法是否为LR类方法,若是请说明是LR(0),SLR(1),LALR(1)或LR(1)的哪一种,并构造相应的分析表,若不是请说明理由. (3)S->aAd|eBd|aBr|eAr A->a B->a 答案: 1)列出扩展文法G'的产生式列表: (0)S'->S (1)S->aAd (2)S->eBd (3)S->aBr (4)S->eAr (5)A->a (6)B->a 2) G'的LR(0)项目集族及识别活前缀的DFA 如下图所示: B I0: S'->.S S->.aAd S->.eBd S->.aBr S->.eAr I1: S'->S. I2: S->a.Ad S->a.Br A->.a B->.a I3: S->e.Bd S->e.Ar B->.a A->.a S a e I4: S->aA.d I5: S->aB.r I6: A->a. B->a. A B a I7: S->eB.d I8: S->eA.r A a I9: S->aAd. d I10: S->aBrd. r I11: S->eBd. d I12: S->eAr. r 从上图中看出项目集I6 中存在归约-归约冲突,所以该文法不是LR(0)文法。 下面判断是否为SLR(1)文法: Follow(S)={#} Follow(A)={d,r} Follow(B)={d,r} 对于I6,Follow(A) ∩Follow(B)= {d,r}不为φ,所以项目集I6 中的归约-归约冲突不能消除,该文法不是SLR(1)文法。 下面判断是否为LR(1)文法,在上面的项目集规范族中加入搜索符: 从上图可以看出原来存的的归约-归约冲突已经消除,所以该文法为LR(1)文法。 但若合并同心项目集I6 和 I13,则归约-归约冲突又会重现,因此该文法不是LALR(1)文法。 3)LR(1)分析表 Action Goto State a e d r # S A B 0 S2 S3 1 1 acc 2 S6 4 5 3 S13 8 7 4 S9 5 S10 6 R5 R6 7 S11 8 S12 9 R...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第7章作业参考答案

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部