第7章作业参考答案

第7章作业参考答案

ID:6183744

大小:195.17 KB

页数:10页

时间:2018-01-05

第7章作业参考答案_第1页
第7章作业参考答案_第2页
第7章作业参考答案_第3页
第7章作业参考答案_第4页
第7章作业参考答案_第5页
资源描述:

《第7章作业参考答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章LR分析1.已知文法A→aAd

2、aAb

3、ε判断该文法是否是SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。答案:文法:A→aAd

4、aAb

5、ε拓广文法为G′,增加产生式S′→A若产生式排序为:0S'→A1A→aAd2A→aAb3A→ε由产生式知:First(S')={ε,a}First(A)={ε,a}Follow(A)={d,b,#}G′的LR(0)项目集规范族及识别活前缀的DFA如下图所示:在I0中:A→.aAd和A→.aAb为移进项目,A→.为归约项目,存在移进-归约冲突,因此所给文法不是LR(0)文法。在

6、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

7、eBd

8、aBr

9、eArA->aB->a答案:1)列出扩展文法G'的产生式列表:(0)S'->S(1)S->aAd(2)S->eBd(

10、3)S->aBr(4)S->eAr(5)A->a(6)B->a2)G'的LR(0)项目集族及识别活前缀的DFA如下图所示:BI0:S'->.SS->.aAdS->.eBdS->.aBrS->.eArI1:S'->S.I2:S->a.AdS->a.BrA->.aB->.aI3:S->e.BdS->e.ArB->.aA->.aSaeI4:S->aA.dI5:S->aB.rI6:A->a.B->a.ABaI7:S->eB.dI8:S->eA.rAaI9:S->aAd.dI10:S->aBrd.rI11:S->eBd.dI12:S->eAr.r

11、从上图中看出项目集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)文法,在上面的项目集规范族中加入搜索符:BI0:S'->.S,#S->.aAd,#S->.eBd,#S->.aBr,#S->.eAr,#I1:S'->S.,#I2:S->a.Ad,#S->

12、a.Br,#A->.a,dB->.a,rI3:S->e.Bd,#S->e.Ar,#B->.a,dA->.a,rSaeI4:S->aA.d,#I5:S->aB.r,#I6:A->a.,dB->a.,rABaI7:S->eB.d,#I8:S->eA.r,#AaI9:S->aAd.,#dI10:S->aBr.,#rI11:S->eBd.,#dI12:S->eAr.,#rI13:B->a.,dA->a.,r从上图可以看出原来存的的归约-归约冲突已经消除,所以该文法为LR(1)文法。但若合并同心项目集I6和I13,则归约-归约冲突又会重现,因此该

13、文法不是LALR(1)文法。3)LR(1)分析表 ActionGotoStateaedr#SAB0S2S311acc 2S6453S13874S9 5S10 6R5R6 7S11 8S12 9R1 10R3 11R2 12R4 13R6R5 11.设文法G[S]为:S->AS

14、εA->aA

15、b(1)证明G[S]是LR[1]文法;扩展文法G’为:(0)S’->S(1)S->AS(2)S->ε(3)A->aA(4)A->bG'的LR(1)项目集族及识别活前缀的DFA如下图所示:AbabaI0:S’->.S,#S->.AS,#S->.,#A-

16、>.aA,a/b/#A->.b,a/b/#I1:S’->S.,#SI2:S->A.S,#S->.AS,#S->.,#A->.aA,a/b/#A->.b,a/b/#AI3:A->a.A,a/b/#A->.aA,a/b/#A->.b,a/b/#I4:A->b.,a/b/#abI5:S->AS.,#SAI6:A->aA.,a/b/#从上图中可以看出,每个项目集中均无移进-归约冲突和归约-归约冲突,所以该文法为LR(1)文法。(2)构造它的LR(1)分析表; ActionGotoStateab#SA0S3S4R2121acc 2S3S4R252

17、3S3S464R4R4R4 5R1 6R3R3R3 (1)给出输入符号串abab#的分析过程。序号状态栈符号栈输入缓冲区动作10#abab#S3,移进203#abab#S4,移进3034#abab#R4,归

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。