- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14讲(LR分析法).ppt.ppt
第7章 LR分析法 7.1 LR分析法概述 7.2 LR(0)分析法 主要内容 课题:LR分析法基本思想和LR(0)分析法 目的要求: 1.理解LR分析法的基本思想; 2.了解LR(0)分析法;? 教学重点: 1.LR分析法的基本思想; 2.前缀、活前缀与可归前缀等概念 教学难点 : LR(0)分析法 教学课时:2 教学方法:多媒体教学 教学内容和步骤 :(如下) 第 十四 讲 我们已经学过自顶向下和自底向上两种分析方法。 自底向上分析法是一种移进-归约过程,其关键问题是在分析过程中如何确定句柄。 LR分析方法也是通过求句柄并逐步归约来进行语法分析的。是规范归约。 在算符优先分析法中,句柄是通过运算符的优先关系而求得,LR方法中句柄是通过求可归前缀而求得。 7.1 LR分析方法概述 所谓LR(K)分析就是根据当前分析栈中的符号串和向右顺序查看输入串的K(K≥0)个符号就可以唯一确定分析器的动作的一种方法。 LR分析法的特点:对文法限制较低、速度快、准确,并能及时指出出错的位置。 LR(0)分析法对文法的限制较多,因此实用性很差,但是它是构造其他LR分析器的基础。 1. 一个LR分析器由3个部分组成: (1) 总控程序,也可以称为驱动程序。对所有的LR分析器总控程序都是相同的。 (2)?分析表或分析函数,分析表又可分为动作表(ACTION)和状态转换表(GOTO)两个部分。 (3) 分析栈,包括文法符号栈和相应的状态栈。 分析器的动作就是由栈顶状态和当前输入符号所决定。 LR分析器 2. 分析器的动作决定于栈顶状态和当前输入符号,有四种可能: (1) 移进:栈顶未出现句柄,当前输入符号进符号栈,状态转换,新的状态进状态栈; (2) 归约:栈顶出现句柄,按某个产生式进行归约。归约后的文法符号进符号栈,同时根据状态转换表,新状态进状态栈。 (3) 接受(acc) :符号栈只剩开始符且当前输入符号为‘#’,则分析成功。 (4) 出错(error) :栈顶状态与当前输入符不匹配。 几个基本概念:前缀、活前缀与可归前缀 设有符号串 γ ,文法G的某句型? : 前缀: γ是句型?的头, 则称γ为句型?前缀; 活前缀: γ是句型?前缀,且?是规范句型。 可归前缀: γ是文法G的一个活前缀,且γ的末端恰好是规范句型?的句柄的末端。 也可以说,活前缀就是指形成可归前缀之前包括可归前缀在内的所有规范句型的前缀。 r 7.2 LR(0)分析法 形式定义如下: 对于文法G[S],若 (最右推导) S??Aω? ?βω, ω?Vt* 如果符号串γ是串??的头,则γ是??的前缀,(或者称γ是规范句型??ω的前缀,注意:| γ |=|??|),又称γ是文法G的一个活前缀;若| γ |=|??|(即含句柄),则称γ是文法G的一个可归前缀。 下面我们来分析一个具体的例子: * 例1:文法G[S] : S ?aAcBe A ?b A ?Ab B ?d 为产生式加序号变为: S ?aAcBe[1] A ?b[2] A ?Ab[3] B ?d[4] 对于输入串abbcde句子的最右推导如下: S?aAcBe[1] ?aAcd[4]e[1] ?aAb[3]cd[4]e[1] ?ab[2]b[3]cd[4]e[1] 对它的逆过程最左归约(规范归约)为: ab[2]b[3]cd[4]e[1] aAb[3]cd[4]e[1] aAcd[4]e[1] aAcBe[1] S 我们把每次采取归约动作前的符号串部分称为可归前缀。 活前缀为一个或若干规范句型的前缀。在规范归约过程中的任何时刻只要已分析过的部分(即在符号栈中的符号串)均为规范句型的活前缀,则表明已分析过的部分是正确的。 例如:有下面规范句型的前缀: ?,a,ab ?,a,aA,aAb ?,a,aA,aAc,aAcd ?,a,aA,aAc,aAcB,aAcBe 不难发现a,aA,aAc是多个规范句型前缀和活前缀。 LR(0)项目集规范族的构造 1. 基本概念 (1) 项目:在文法G中每个产生式的右部适当位置添加一个圆点构成项目。 例如:产生式S?aAcBe对应有6个项目。 [0] S?·aAcBe [1] S?a·AcBe [2] S?aA·cBe [3] S?aAc·Be [4] S?aAcB·e [5] S?aAcBe · 注意: 产生式 A ?
您可能关注的文档
- 特征敏感几何处理.doc
- 特征方程.ppt
- 特教学生筛选转介与监定安置流程.ppt
- 犯罪现场遗留鞋印提取石膏模板法-狱内侦查.ppt
- 狗医生介绍相关资料-台湾狗医生.ppt
- 独占性竞争市场的特徵挑战一下.ppt
- 环境污染治理设施运营资质证书-河南省环保厅.ppt
- 环境污染治理设施运营项目备案表格式.doc
- 环境风场对台风艾利多普勒速度特征的影响.doc
- 现代信息技术在图书馆的应用.ppt.ppt
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)