- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章自底向上的LR分析法
* 2. 构造GO转换函数 若I是一个项目集,X是一个文法符号 GO(I, X)= closure(J) 其中 J={ 任何形如[A→αX.β,a]的项目∣[A→α.Xβ,a]∈I} LR(I)项目规范族C的构造算法类同LR(0)的,只是初始时: C={ closure( { S’→.S,# } ) }; * LR(1)分析表的构造 设文法G’的项目集规范族C={I0,I1,…,In},令其中每个项目集的下标作为分析器的状态,令包含项目[S’ → .S,#]的项目集Ik的下标k为分析器的初态。构造LR(1)分析表的步骤如下: ①若项目[A→α.aβ,b]∈Ik且goto(Ik,a)=Ij,其中a为终结符,置ACTION[I,a]=“把状态j和符号a移进栈”,简记为“sj”; ②若项目[A→α.,a]∈ Ik ,则置ACTION[I,a]=“用产生式A→α进行归约”,简记为“rj”(假定A→α是文法G’的第j条产生式); * ③若项目[S’→S.,#]∈ Ik,则置ACTION[I,#]=“接收”,简记为‘acc’; ④若goto(I,A)=Ij,A 为非终结符,则置GOTO(I,A)=j ⑤分析表中凡不能用规则①- ④添入信息的元素均置上ERROR。 * 构造LR(1)分析表的步骤小结 文法拓广; 写出基本LR(1)项目; 构造识别活前缀的DFA; 由算法构造LR(1)分析表 * LR(0)、LR(1)、SLR(1)的比较 状态集的计算方法和 LR(0) 基本相同 分析表的构造方法和 LR(0) 基本相同 构造方法的不同点: 第 2 步处理中归约动作的选择: LR(0) 分析考虑所有终结符 SLR(1) 分析参考 FOLLOW 集 LR(1) 分析仅考虑 LR(1)项目中的后继符(用FIRST集近似考虑) * § 6.7 LALR(1)分析表的构造 * LALR分析技术 Look Ahead LR technique. 界于LR(1)分析器与SLR(1)分析器的之间的折衷方案。 利用这种分析技术,构造出的LALR分析表的状态数等于SLR分析表的状态数,比规范LR分析表少得多;分析能力比LR分析器要差一些,但比SLR强大,能够处理一些SLR分析器难以处理的情况。 * 同心项目集 对于两个LR(1)项集,如果除了搜索符(向前看符号)外,其它完全相同,那么这两个项集被称为同心项目集。 同心项目集的心:即对应的LR(0)项目集。 * 同心项目集的合并 合并后的项目集的基本部分保持不变。基本部分相同项的搜索符被合并。 原同心项目集之间的goto转换关系保持不变。 同心项目集合并后,可能延迟报错的时间,但绝不会放过错误,在输入下一个符号之前肯定会发现错误。 * 合并可能引起的冲突 合并引起的冲突是指:本来的LR(1)项目集没有冲突,而合并同心项目集后有冲突。 引起“归约-归约”冲突。 文法{S’→S S→aAd|bBd|aBe|bAe A→c B→c} 是LR(1)文法。 合并同心集后导致归约-归约冲突。 * LALR的基本步骤 首先生成LR(1)项集规范族。 合并同心项目集。并且相应地建立合并后的项目集之间的转换关系。合并后的项目集的个数和LR(0)项目集规范族中的项集个数相同。 根据这个项目集族,构造分析表。 * LALR分析表构造算法 1.构造LR(1)项目集规范族C={I0,I1,I2,…In}。 2.合并C中的同心集,记C’={J0,J1,…,Jn}为合并后的新族。令包含项目[S’ → .S,#]的项目集Ik的下标k为分析器的初态。 * 3.根据C’构造ACTION表: ①若项目[A→α.aβ,b]∈ Ji且goto(Ji,a)=Ij,其中a为终结符,置ACTION[J,a]=“把状态j和符号a移进栈”,简记为“sj”; ②若项目[A→α.,a]∈Ji ,则置ACTION[i,a]=“用产生式A→α进行归约”,简记为“rj”(假定A→α是文法G’的第j条产生式); ③若项目[S’→S.,#]∈Ji ,则置ACTION[i,#]=“接收”,简记为‘acc’; * 4.构造GOTO表: 假定J是由I1,I2,…,Im合并后的新项目集,其中,每个Ii都是一个LR(1)项目集,由于I1,I2,…,Im同心,因此goto(I1,X), goto(I2,X) ,…,goto(Im,X)也同心。令K是由这些同心项目集合并后的项目集,那么,goto(J,X)=K。于是,若toto(Ji,A)=Jj,则置GOTO[i,A]=j。 5.分析表中凡不能用3、4添入信息的空白格均置ERROR。 * 由于S’仅在第一个产生式的左部出现,因此规
您可能关注的文档
最近下载
- 如何开好早会..ppt VIP
- 《机械基础》课件 孟莹 单元1--4 静力学--- 螺纹连接与螺旋机构.pptx
- 靶向二代测序在感染性疾病诊疗中的规范化应用专家共识解读PPT课件.pptx VIP
- 可编程控制器应用技术第2版[西门子S7-1200](PLC)高职全套教学课件.pptx
- 国外矿产勘查报告规范要求.pptx VIP
- 国外矿产勘查报告规范要求.pptx VIP
- 自考 新思想学习资料 15040新思想 主观题.pdf VIP
- 郑功成“社会保障学”名词解释.pdf VIP
- 《PLC应用技术(西门子上册)第2版》中职技工全套教学课件.pptx
- 澳大利亚矿产资源和矿石储量报告规范JORC2004(中文版).doc VIP
文档评论(0)