第12讲-语法分析-VII.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12讲-语法分析-VII

中国科大 编译原理和技术 大连理工软件学院 胡 彦 huyan.ssdut@ 本讲纲要 活前缀的DFA LR(0)项目集 构建识别活前缀的DFA 什么是活前缀 分析过程中在分析栈里出现的串,被称为活前缀 活前缀可以用一个DFA来识别 练习 文法 本讲纲要 活前缀的识别 LR(0)项目集 构建识别活前缀的DFA LR(0)项目集 由一些LR(0)项目组成的集合 LR(0)项目 在右部的某个地方加点的产生式 例如,对于产生式A?XYZ对应的加点项有 A ? ·XYZ A ? X·YZ A ? XY·Z A ? XYZ· 又例如,对于A??,其加点项有 A ? · 分析过程实例 通过实例来说明加点项含义 分析过程实例 通过实例来说明加点项含义 SLR分析表构造 一般性构造过程 首先对文法进行拓广 添加产生式S’-S 构建识别活前缀的DFA 基于DFA构建分析表 3.5 LR分析器 从DFA构造SLR分析表 状态i从Ii构造,它的action函数如下确定: 如果[A??·a?]在Ii中,并且goto(Ii, a ) = Ij,那么置action[i, a]为sj。 如果[A??·]在Ii中,那么对FOLLOW(A)中的所有a,置action[i, a]为rj,j是产生式 A??的编号。 如果[S??S·]在Ii中,那么置action[ i, $ ]为接受acc。 如果出现动作冲突,那么该文法就不是SLR(1)的。 3.5 LR分析器 从DFA构造SLR分析表 状态i从Ii构造,它的action函数如下确定: . . . 使用下面规则构造状态i的goto函数: 对所有的非终结符A,如果goto(Ii, A) = Ij, 那么goto[i, A] = j。 3.5 LR分析器 从DFA构造SLR分析表 状态i从Ii构造,它的action函数如下确定: . . . 使用下面规则构造状态i的goto函数: . . . 不能由上面两步定义的条目都置为error。 3.5 LR分析器 从DFA构造SLR分析表 状态i从Ii构造,它的action函数如下确定: . . . 使用下面规则构造状态i的goto函数: . . . 不能由上面两步定义的条目都置为error。 分析器的初始状态是包含[S??·S]的项目集对应的状态。 3.5 LR分析器 从文法构造识别活前缀的DFA 1. 拓广文法 E ? ? E E ? E + T | T T ?T * F | F F ?( E ) | id 3.5 LR分析器 从文法构造识别活前缀的DFA 2. 构造LR(0)项目集规范族 I0: E ?? ·E 3.5 LR分析器 从文法构造识别活前缀的DFA 2. 构造LR(0)项目集规范族 I0: E ?? ·E (核心项目) E ? ·E + T E ? ·T (非核心项目, T ? ·T * F 通过对核心项目求闭包 T ? ·F 而获得) F ? ·(E) F ? ·id 3.5 LR分析器 从文法构造识别活前缀的DFA 2. 构造LR(0)项目集规范族 I0: I1: E ?? ·E E ? ? E· E ? ·E + T E ? E· + T E ? ·T T ? ·T * F T ? ·F F ? ·(E) F ? ·id 3.5 LR分析器 从文法构造识别活前缀的DFA 2. 构造LR(0)项目集规范族 I0: I1: E ?? ·E E ? ? E· E ? ·E + T E ? E· + T E ? ·T T ? ·T * F I1 := goto ( I0, E ) T ? ·F F ? ·(E) F ? ·id 3.5 LR分析器 从文法构造识别活前缀的DFA 2. 构造LR(0)项目集规范族 I0: I1: E ?? ·E E ? ? E· E ? ·E + T E ? E· + T E ? ·T T ? ·T * F I2: T ? ·F E ? T· F ? ·(E) T ?T· * F F ? ·id 3.5 LR分析器 从文法构造识别活前缀的DFA 2. 构造LR(0)项目集规范族 I0: I1: E ?? ·E E ? ? E· E ? ·E + T E ? E· + T E ? ·T T ? ·T * F I2: T ? ·F E ? T· F

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档