- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 自下而上的LR(k)分析方法 LR(k)分析器是这样一种分析程序:它总是按从左至右方式扫描输入串,并按自下而上方式进行规范归约。在这种分析过程中,它至多只向前查看k个输入符号就能确定当前的动作是移进还是归约;若动作为归约,则它还能唯一地选中一个产生式去归约当前已识别出的句柄(这里称为活前缀)。若该输入串是给定文法的一个句子,则它总可以把这个输入串归约到文法的开始符号;否则报错,指明它不是该文法的一个句子。 7.1 LR(k)文法和LR(k)分析器 给定文法G,S是其开始符号。考虑该文法中一个终结符号串w的一个规范推导 S=w1=w2=…=w 假定 uAv=uxv 是上述推导中的一个推导步。A::=x是用于该推导步的产生式。 对于每一个这样的推导和推导步,仅通过扫描ux和查看v中开始的k个符号就能唯一确定选用产生式A::=x,我们就称G为LR(k)文法。 7.2 LR(0)分析表的构造 LR分析方法的基本原理是:把每个句柄(某个产生式的右部)的识别过程划分为若干状态,每个状态从左至右识别句柄中的一个符号,若干个状态就可识别句柄左端的一部分符号。识别了句柄的这一部分就相当于识别了当前规范句型的左起部分——规范句型的活前缀。因而,对句柄的识别就变成了对规范句型活前缀的识别。 7.3 SLR分析表的构造 LR(0)文法所构造出来的识别活前缀的DFA中每个状态(每个项目集)不能包含冲突项目。 许多冲突动作都可以通过考察有关非终结符的FOLLOW集而得到解决,即通过向前查看一个输入符号来协助解决冲突。 7.4 规范LR(1)分析表的构造(略) 重新定义项目,使得每个项目包含两个部分,第一部分就是原来的项目本身,第二部分是由一个终结符号(可能为$)组成。重新定义后的项目称为LR(1)项目,其一般形式为 [A→α.β,a] 项目中第二部分称为向前看符号。 对于β=ε的项目[A→α.,a],其作用在于:当相应的状态呈现于栈顶且下一个输入符号为a时,才可选用产生式A→α,将栈顶的α规约到A。 7.5 LALR分析表的构造(略) LALR(向前看LR)分析技术是介于规范LR分析器构造法和SLR分析器构造法之间的一种方法。 某些LR(1)项目集称为同心,即如果除了向前看符号之外,这些项目集是相同的。在LALR分析方法中,就试图将这些同心项目集合并成一个项目集。 * 湖北大学数计学院计科系 2008年3月 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 7.1 LR(k)文法和LR(k)分析方法 7.2 LR(0)分析表的构造 7.3 SLR分析表的构造 7.4 规范LR(1)分析表的构造 7.5 LALR分析表的构造 7.6 无二义性规则的使用 7.7 小结 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. LR分析器的逻辑结构? 一个输入、一个输出、一个栈、一个驱动程序和一张分析表。 id+id*id$ Sm Xm Sm-1 Xm-1 … S0 LR驱动程序 动作 转移 action goto 输出 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 分析动作表(ACTION): 移进 ai 和s=goto[sm,ai]进栈 action[sm,ai]=归约 rj : A::=Xm-r+1Xm-r+2…Xm 接收 s=goto[sm-r , A] 错误处理 LR分析器的分析表:分析动作表和goto函数表 GOTO函数表: GOTO[si
您可能关注的文档
最近下载
- 2024年考核消防设施操作员中级监控操作方向真题考试(含答案).docx
- 2025初中英语教师比赛 完形填空 说题课件.pptx
- ZH_ACQ531_ABB变频器硬件手册.docx
- 2024必威体育精装版青岛版小学科学四年级上册第四单元《18.水蒸气凝结》教学设计.docx VIP
- 大学职业生涯规划报告.pdf VIP
- 药剂科药品质量与安全工作会议记录_药剂科质量与安全纪要.doc VIP
- 部编人教版六年级语文上册教学设计(全册教案).doc
- 2024秋季新版语文郑振铎《猫》:四种写作手法、句段作用、赏析句子(解析版).docx
- 心电图科实用心得体会(专业16篇).docx
- 中国餐桌礼仪解读.ppt
文档评论(0)