- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
如何由文法构造LR分析表?LR文法:对于一个文法,如果能够构造一张LR分析表使得它的每个入口均是唯一确定的,则称该文法为LR文法。对于LR文法,当分析器对输入串进行自左至右扫描时,一旦句柄呈现于栈顶,能及时对它实行归约。有些情况下LR分析器需“展望”和实际检查未来的k个输入符才能决定应采取什么样的“移进-归约”决策。第61页,共108页,星期日,2025年,2月5日LR(k)文法:一个文法如果能用一个每步最多向前检查k个输入符的LR分析器进行分析,则称该文法为LR(k)文法。若一个文法的任何“移进-归约”分析器都存在下述情况:尽管栈的内容和下一输入符都已了解,但仍无法确定是“移进”还是“归约”,或无法从几种可能的归约中确定其一,则该文法为非LR(1)文法。注意:(1)LR文法肯定是无二义的,一个二义文法不会是LR文法。(2)LR分析技术可适当修改以适于一定的二义文法。第62页,共108页,星期日,2025年,2月5日四种LR分析表的构造方法:(1)LR(0)表的构造方法:该法局限性很大,但它是建立一般LR分析表的基础。(2)SLR(1)表(简单LR表)的构造方法:该法较易实现又极有使用价值。(3)LR(1)表(规范LR表)的构造方法:该法适用于大多数CFG文法,但分析表体积庞大。(4)LALR表(向前LR表)的构造方法:该法介于SLR(1)和LR(1)之间。第63页,共108页,星期日,2025年,2月5日3.5.2LR(0)分析表的构造希望仅由一种只概括“历史”资料而不包含推测性“展望”材料的简单状态就能识别呈现在栈顶的某些句柄,LR(0)项目集就是这样一种简单状态。讨论LR分析法时,需要定义一个重要概念,这就是文法规范句型的活前缀。字的前缀是指该字的任意首部,例如,字abc的前缀有ε、a、ab或abc。所谓活前缀是指规范句型的一个前缀,这种前缀不含句柄之后的任何符号。第64页,共108页,星期日,2025年,2月5日在LR分析过程中的任何时候,栈里的文法符号X1X2…Xm应构成活前缀。把输入串的剩余部分匹配于其后应成为规范句型(如果整个输入串确为一个句子的话)。因此,只要输入串的已扫描部分保持可归约成一个活前缀,就意味着所扫描的部分没有错误。第65页,共108页,星期日,2025年,2月5日对于文法G[S],首先要构造一个NFA,它能识别G[S]的所有活前缀,这个NFA的每个状态称为一个项目。项目:文法G[S]中每一产生式的右部添加一个圆点,称为文法G[S]的一个LR(0)项目,简称项目。例如,产生式A→XYZ对应四个项目:A→·XYZA→X·YZA→XY·ZA→XYZ·注意,产生式A→ε只对应一个项目A→·第66页,共108页,星期日,2025年,2月5日一个项目指明了在分析过程的某个时刻看到产生式的多大一部分。通过使用文法的项目可构造一个NFA来识别文法的所有活前缀,再用子集法把识别活前缀的NFA确定化,使之成为一个以项目集合为状态的DFA,这个DFA就是建立LR分析算法的基础。第67页,共108页,星期日,2025年,2月5日识别一个文法活前缀的DFA的项目集的全体称为这个文法的LR(0)项目集规范族。这个规范族提供了建立一类LR(0)和SLR(1)分析器的基础。圆点在最右端的项目,如A→α·,称为一个归约项目;对文法的开始符号S‘的归约项目,如S’→α·,称为接受项目;形如A→α·aβ的项目(a为终结符),称为移进项目;形如A→α·Bβ的项目(B为非终结符),称为待约项目。第68页,共108页,星期日,2025年,2月5日1.LR(0)项目集规范族的构造可用ε_CLOSURE构造一个文法的LR(0)项目集规范族。首先构造文法G[S]的拓广文法G[S],它包含整个G[S]并引进一个不出现在G[S]中的非终结符S,同时加进了一个新产生式S→S。这样,仅含项目S→S·的状态是唯一的接受状态。第69页,共108页,星期日,2025年,2月5日假定I是文法G‘[S’]的任一项目集,
您可能关注的文档
最近下载
- “十五五”消防事业发展规划.docx VIP
- 2025高考数学专项讲义第06讲几何法求空间角与空间距离(学生版+解析).docx VIP
- 2025年执业药师承诺书.pdf VIP
- 高考语文阅读理解《到梨花屯去》含答案.docx VIP
- (高清版)-B-T 2651-2023 金属材料焊缝破坏性试验 横向拉伸试验.pdf VIP
- 2025年无人机驾驶员实操考核模拟试题及答案.docx VIP
- 中国偶像产业迭代研究报告-(研究报告).pdf VIP
- 2025年广东省高中历史学业水平考试综合测评(一)历史试题(原卷版+解析版).docx VIP
- 2025-2026秋季学年第一学期“1530”安全教育记录表.docx VIP
- 人教版小学数学三年级上册《多位数乘一位数》教材分析.doc VIP
原创力文档


文档评论(0)