- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自下而上分析和优先分析方法
第六章自底向上分析和优先分析方法 概述 自底向上分析是最右推导的逆过程,从构造语法树的观点来讲,是指从树的末端结点开始,逐步向上归约,直至树的根结点,也就是说,从输入串本身开始,朝着开始符号进行归约。直至到达开始符号为止。 确定的自底向上分析器通常分为两大类:优先分析器(Precedence Parser)和 LR(k)分析器。 6.1自底向上分析的一般原理 1 自底向上分析的基本思想 对于给定语言的文法,自底向上分析的基本思想是:自左向右逐个扫描输入串,一边把输入符号移入分析栈内,一边检查位于栈顶的一串符号是否与某个产生式的右部相同。如果发现相同,就把栈顶符号替换为相应产生式左部的符号,并继续进行判断,上述过程一直重复到输入串已结束,而栈顶恰好为文法的开始符号。 2.自底向上分析的过程: 移进—归约法 移进:一边分析一边往栈里移符号 归约:是在栈顶形成可规约串时进行的 可规约串: (1)某个产生式的右部符号串(句柄)(LR分析法) (2)最左素短语(算符优先分析法) 分析过程:把输入符号一个个地按扫描顺序移进栈,当栈顶部的符号串形成一个句柄(也就是某个产生式的右部)时,就进行一次归约,即把栈顶部构成句柄的那个符号串用相应产生式的左部替代;接着再检查栈顶部是否又形成了新的句柄,若是,则再进行归约,若未形成新的句柄,则再从输入串中移进新的符号,如此继续,直至输入串分析完毕. 结束条件:若栈中仅为文法的开始符号,则表明所分析的输入串是合法的,报告分析成功;否则输入串是不合法。 移进-归约过程图 3.移进–归约分析器算法: 这个分析器设置了一个符号栈和一个输入缓冲区。设当前输入符号串为?。 分析开始时,栈和输入缓冲区的格局为 在符号栈里先放置一个“#”号,输入符号串?之后跟着一个“#”号,作为输入符号串的结束符。 句子?的分析过程:将?的符号从左到右逐个移进符号栈,一旦栈顶符号串与某一个产生式右部相匹配成为一个可归约符号串时,则将此符号串归约为一个非终结符,这个非终结符是该产生式左部符号。?的符号继续逐个移进符号栈,当栈顶又形成一个可归约的符号串时,则又可将此符号串归约为某一个产生式左部非终结符。 重复这个过程,如果最终出现如下格局: 符号栈里仅有“#”号与识别符号Z,输入符号串?全部被符号栈吸收,只剩下“#”号,则分析成功,说明符号串?是文法的一个句子。如果得不到以上格局,则表明符号串?不是文法的句子,存在语法错误。 自下而上分析法的主要问题是:如何寻找一个规范句型的句柄以及找到这样的句柄后如何规约它(选用哪个产生式来进行归约)。这正是本章和下章中试图解决的问题。 4.举例: [例]设文法G[A]: 1 A→ aBcDe 2 B→ b 3 B → Bb 4 D→ d 对输入串abbcde进行自底向上的语法分析, 检查该符号串是否合法. 句子abbcde$ 分析过程(1页) 句子abbcde$分析过程 (2页) 5.结论: 在自底向上分析的过程中,如果语法分析程序每次只能面临一种动作选择,要么移进、要么归约,那么这个分析过程就是确定的。如果归约的时候发生冲突,就会发生错误的归约,从而使语法分析无法进行下去。错误归约造成语法分析程序做许多“无用功”,降低了分析效率。造成错误归约的原因是错误地识别了句柄。因此在自底向上分析中,最关键的问题是如何识别句柄。 在规范归约分析法中:使用句柄来刻画可归约串 算符优先分析法中:使用最左素短语刻画可归约串 根据可归约串的不同识别方法形成不同的自底向上的语法分析方法 简单优先法:是根据文法符号间的优先关系来确定栈顶符号串是否形成句柄 LR分析法:是根据历史、现实、展望三者信息来确定栈顶符号串是否形成句柄 6.2 短语和句柄 定义6.1 设S是文法G的识别符号,w= xUy是其中的句型,若 则称子串?是句型x?y相对于非终结符U的短语。其中,U?VN;x,y? (VN∪VT)*。此外,如果有 则称子串?是句型x?y相对于非终结符U的直接短语或简单短语。一个句型的最左直接短语,称为该句型的句柄(Handle),句柄的最右符号称为该句柄之尾。一个规范句型的句柄的右边只包含终结符号。 语法树与短语的关系密切。由此,引出下述结论: 每个句型(句子)都对应一颗语法树; 每颗语法树的末端结点自左至右排列构成一个句型(句子); 每颗子树的末端结点自左至右排列构成一短语; 每颗直接子树的末端结点自左至右排列构成一简单短语; 最左简单子树的末端结点左至右排列构成一句柄。 例: 已知句型 ? = (a,(T),(T,S))的语法树如右图: 句型?的7个短语是: ① (a,
您可能关注的文档
最近下载
- 办公耗材类保证服务的措施.docx VIP
- 网招团队日常管理.pptx
- 阿兹海默症护理.pptx VIP
- 罐区设备设施风险分级管控清单.pdf VIP
- DB32T 4582-2023 宗教活动场所安全管理规范 .pdf VIP
- 专题03 2025年西城区高三一模作文“用功与有功” “如你所愿”导写(原题呈现 审题立意 素材积累 高分范文 类题迁移).docx VIP
- BATCH RELEASE CERTIFICATE(外贸出口BRC两个模板).doc
- (投标书范本)政府采购投标书.pdf VIP
- 专题02 2025年东城区高三一模作文“适合的与热爱的” “先声”导写(原题呈现 审题立意 素材积累 高分范文 类题迁移).docx VIP
- 沪教版九上化学 2.1 性质活泼的氧气第2课时 氧气的实验室制法与性质实验 课件(共17张PPT)(含音频+视频).ppt VIP
文档评论(0)