- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2、SLR(1)分析表的构造 将LR(0)分析表构造算法中的 b)改为: 若项目A→? ·属于Ik,则对a为任何终结符或‘#’号,且满足a?FOLLOW(A)时,置ACTION[k, a]为“rj”,j为在文法G?中某产生式A→?的序号。 其余均同LR(0)分析表的构造SLR(1)分析。 总控程序使用SLR(1)分析表进行分析。 回节 上一页 下一页 3、非SLR文法的判断 判断方法一: 对识别文法可归前缀DFA中任一状态下, 设形式为:A1→?1 · a1?1 ┊ Am→?m · am?m B1→r1 · ┊ Bn→rn · 必须: {a1, …, am} FOLLOW(B1) … FOLLOW(Bn) 两两不相交, 否则,文法不是SLR的。 判断方法二: 若构造的SLR分析表含多重定义,则文法不是SLR的。 例: P 140 6.4 LR(1)分析 1、LR(1)方法的引进 对某些文法,用SLR(1)方法仍解决不了分析动作的冲突问题,可采取以下措施:若某归约项目A→? · ? I ,当 I 为当前状态,面临当前输入符号a 时,只有a 是在 I 状态下A 的后继符号时 才用 A → ? 产生式归约,而不是对A的所有后继符号都可以归约。从而有望解决冲突。 回节 上一页 下一页 2、构造以LR(1)项目集为状态的识别可归前缀的DFA 为了得知在 I 状态下,归约项目 A → ? · 的 A 的后继符号是哪些,在LR(0)项目 的后面加上向前搜索符,称为LR(1)项目。 如: A → ? · ,b 回节 上一页 下一页 构造文法的LR(1)项目集规范族和GO 函数(即DFA) 初态:CLOSURE(S?→S,#) 构造 CLOSURE(I)的方法: (1)I 的任何项目均属于CLOSURE(I); (2)如果项目 A → ? · B? ,a 属于CLOSURE(I), 且 B → r 是文法中的产生式,b?FIRST(?a) 则 B → · r ,b 也属于CLOSURE(I); (3)重复(2),直至CLOSURE(I)不再增大为止。 构造GO 函数方法与LR(0)的相似,向前搜索符 无变化。 3、LR(1)分析表的构造 将LR(0)分析表构造算法中的 b) 中: 若项目 A → ? · 属于Ik ,则对 a 为任何终结符或 ‘#’ 号,置ACTION[k, a]为 rj 改为:若项目 [A→?·, a] 属于Ik , 则置 ACTION [k,a] = rj 4、LR(k)分析表 如果用 LR(1)方法仍不能解决冲突,则可再向前多搜索几个符号,这时的项目为 [A→?·? , a1 a2 … ak ] 称为 LR(k)项目,相应的分析表构造方法类似 LR(1)分析表的构造。 回节 上一页 下一页 在LR(1)项目中,有很多状态中的项目除了向前搜索符号不同外,产生式部分是完全相同的,称这样的状态是同心的,为了克服LR(1)分析中状态太多的问题,可以将这些同心集合并。如果合并后得到的新状态没有冲突出现。则按新状态构造分析表。 这就是LALR(1)分析法的基本思想。 注意:语法分析器的自动生成器YACC就是使用LALR(1)分析表进行分析的。 6.5 LALR(1)分析 回节 上一页 下一页 本章要点: 可归前缀 LR(0)项目 构造识别文法可归前缀的活前缀的DFA (即求构造LR(0)项目集规范族和Go函数) 构造LR(0)分析表 非LR(0)文法的判断 LR(0)分析 构造SLR(1)分析表 SLR(1)分析 非SLR文法的判断 LR(1)分析 回节 上一页 退出 第6章 LR分析法 LR分析法是一类对上下文无关文法进行“自左向右的扫描和最左归约(即最右推导的逆过程)”分析的方法,是一种规范归约过程。 LR(k)分析方法是1965年Knuth提出的,其中k表示向右查看输入符号串的个数。 6.1 LR分析器概述 6.2 LR(0)分析 6.3 SLR(1)分析 6.4 LR(1)分析 6.5 LALR
您可能关注的文档
- 刘新昱《计算机信息技术教程》第2章2.7 常用医学信息采集与处理设备.ppt
- 刘新昱《计算机信息技术教程》第3章 复习重点.ppt
- 刘新昱《计算机信息技术教程》第3章3.1 软件概述.ppt
- 刘新昱《计算机信息技术教程》第3章3.2 操作系统.ppt
- 刘新昱《计算机信息技术教程》第3章3.3 算法和程序设计.ppt
- 刘新昱《计算机信息技术教程》第3章3.4 常用应用软件.ppt
- 刘新昱《计算机信息技术教程》第4章4.1 计算机网络基础.ppt
- 刘新昱《计算机信息技术教程》第4章4.2 计算机局域网.ppt
- 刘新昱《计算机信息技术教程》第4章4.3 计算机广域网.ppt
- 刘新昱《计算机信息技术教程》第4章4.4 Internet.ppt
- 2025年吨树脂和3300吨涂料及助剂生产项目环境影响报告书.docx
- 高中化学竞赛辅导机器人编程在有机合成实验中的辅助作用教学研究课题报告[001].docx
- 初中信息技术教学中核心素养培养的实践与反思教学研究课题报告.docx
- 《银行网点智能化转型中的智能客服系统设计与评估》教学研究课题报告.docx
- 小学环境教育:校园噪音监测与声学治理策略研究教学研究课题报告.docx
- 生物炭改良盐碱地对土壤肥力恢复的长期效应分析教学研究课题报告.docx
- 高中生物建模在生物遗传学与生物分子学教学中的应用与效果分析教学研究课题报告.docx
- 初中地理野外教学活动设计以观察记录法提升研究技能教学研究课题报告.docx
- 主体结构工程设计方案(3篇).docx
- 桩基工程质量施工方案(3篇).docx
文档评论(0)