- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第7章 LR 分析法ppt完整
图 7.8 LR(0)识别G′的活前缀的DFA 如果一个文法的LR(1)分析表不含多重入口时,(或任何一个LR(1)项目集中无移进-归约冲突或归约-归约冲突)则称该文法为LR(1)文法,所构造的相应分析表称为LR(1)分析表,能使用LR(1)分析表的分析器称为LR(1)分析器或称规范的LR分析器。 表 7.11 LR(1)分析表 2 5 8 9 1 Acc r1 r3 r2 S4 S7 S4 r3 S7 r2 S3 S6 S3 r3 S6 r2 0 1 2 3 4 5 6 7 8 9 B S # b a GOTO ACTION 状态 结论: LR(1)文法是无二义的。 LR(1)项目集的构造对某些同心集的分裂可能使状态数目剧烈的增长。 一个文法是LR(0)文法一定也是SLR(1)文法,也是LR(1)文法。反之则不一定成立。 7.5 LALR(1) 分析 LR(1)分析表的构造,对归约时向前查看的符号由SLR(1)用的FOLLOW集改为向前搜索符,计算方法比较确切,对文法放宽了要求,也就是适应的文法类广,因此,可以解决SLR(1)方法解决不了的问题。 但是,由于它的构造对某些同心集的分裂可能对状态数目引起剧烈的增长,从而导致存储容量的急剧增加,也使应用受到一定的限制。 为了克服LR(1)的这种缺点,采用对LR(1)项目集规范族合并同心集的方法,若合并同心集后不产生新的冲突,则为LALR(1)项目集。它的状态个数与LR(0) 、SLR(1)的相同。 例如:我们分析图7.8中的项目集可发现同心集如下: I3: B→a·B,a/b I6:B→a·B,# B→·aB,a/b B→·aB,# B→·b,a/b B→·b,# I4: B→b·,a/b I7:B→b·,# I8: B→aB·,a/b I9:B→aB·,# 即I3和I6,I4和I7,I8和I9分别为同心集,将同心集合并后为: I3,I6: B→a·B,a/b/# B→·aB,a/b/# B→·b,a/b/# I4,I7: B→b·,a/b/# I8,I9: B→aB·,a/b/# 同心集合并后仍不包含冲突,因此该文法满足LALR(1) 要求。 合并同心集有几个问题需要说明: (1)同心集是指心相同的项目集合并在一起,因此同心集合并后心仍相同,只是超前搜索符集合为各同心集超前搜索符集合的并集。 (2)对于合并同心集后的项目集的转换函数仍为同心集,因为相同的心之转换函数的心仍相同,即仍属同心集,所以合并同心集后转换函数为自动合并,如例中I3和I6为同心集,它们的转换函数分别为: I3: GO(I3,a)= I3 I6: GO(I6,a)= I6 GO(I3,b)= I4 GO(I6,b)= I7 GO(I3,B)= I8 GO(I6,B)= I9 然而,I3和I6,I4和I7,I8 和I9分别都为同心集。 (3)若文法是LR(1)文法,合并同心集后若有冲突也只可能是归约-归约冲突,而不可能产生移进-归约冲突。 (4)合并同心集后对某些错误发现的时间会产生推迟现象,但错误的出现位置仍是准确的。这意味着LALR(1)分析表比LR(1)分析表对同一输入串的分析可能会有多余归约。 现在构造上述文法的LALR(1)分析表,对于一个文法是否为LALR(1)文法,通常所采用的方法是首先构造它的LR(1)项目集族,若不含任何冲突,则合并同心集,若仍不产生归约-归约冲突,则该文法便是LALR(1)文法,那么就可以根据合并同心集后的项目集族构造该文法的LALR(1)分析表,其构造步骤如下: 构造文法G的LR(1)项目集族,C={I0,I1,…,In}。 (2) 合并所有的同心集,使C变为C′={J0,J1,…,Jm},便是LALR(1)的项目集族。 由于构造LALR(1)分析表,通常所采用的方法是首先构造它的LR(1)项目集族,若不含任何冲突,则合并同心集,若仍不产生归约-归约冲突,则该文法便是LALR(1)文法,再根据合并同心集后的项目集族构造该文法的LALR(1)分析表。所以LALR(1)分析表的构造除了步骤(2)外,其余步骤与LR(1)分析表的构造相同。 3) 由C′构造动作(ACTION)表,其方法与LR(1)分析表的构造相同。 a)若[A→α·aβ,b]∈Jk,且GO(Jk,a)=Jj, 其中a∈VT,则置ACTION[k,a]=Sj,其Sj的含义是把输入符号a和状态j分别移入文法符号栈和状态栈。 b) 若项目[A→α·,a]属于
您可能关注的文档
- [工学]第3章 老软件.ppt
- [工学]第3章 计算机网络通讯之局域网.ppt
- [工学]第3章 纵断面设计2.ppt
- [工学]第3章 误差的合成与分配.ppt
- [工学]第3章 矩阵特征值与特征向量的计算.ppt
- [工学]第3章 运算符_数据类型与表达式.ppt
- [工学]第3章 连续系统数字仿真通用算法.ppt
- [工学]第3章 配合物的立体化学.ppt
- [工学]第3章 逻辑门电路第五版.ppt
- [工学]第3章--字符串-数组-特殊矩阵.ppt
- 浙江省临海市白云高级中学2025届高三历史3月月考试题.doc
- 云南拾谷县第一中学2024_2025学年高二物理上学期10月月考试题.doc
- 2025版高考生物总复习第13讲基因的分离定律教案苏教版.doc
- 湖北省黄石实验高中2024_2025学年高一历史下学期期末考试模拟卷.doc
- 通史版2025版高考历史大一轮复习专题七近代化的曲折发展__中日甲午战争至五四运动前4第4讲从维新思想到新文化运动课后达标检测含解析新人教版.doc
- 2024年高考数学考试大纲解读专题04导数及其应用含解析文.doc
- 河南省许汝平九校联盟2024_2025学年高一语文上学期期末考试试题扫描版无答案.doc
- 江西省吉安市吉水县第二中学2024_2025学年高一历史上学期第二次月考试题.doc
- 北京市平谷区2025届高三政治一模考试试题含解析.doc
- 2025届中考物理第四讲物态变化专项复习测试无答案新人教版.docx
文档评论(0)