- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个简单的一遍编译器
Chapter4.2.4 LR分析方法 LR(1) 分析表的构造 提纲 SLR(1)的问题 SLR(1)问题分析 LR(1)项目 LR(1)项目集闭包算法 GO函数及DFA的构造方法 LALR(1)分析简介 关于各类文法的一些结论 1. SLR(1)的问题 G[S]的拓扩文法 0. S’→S 1. S→AaDC 2. C→Cba 3. C→ba 4. D→A 5. D→Ba 6. A→b 7. B→b 2. SLR(1)问题分析 活前缀-状态机 动作冲突有: 归约-归约 归约-移进 SLR(1)对于归约项目A→?? 只要输入是FOLLOW(A)中的单词,就归约 这也有一定的片面性,没有考虑?所在的“环境”. 我们称SLR(1)的FOLLOW为静态FOLLOW 而LR(1)就是将静态FOLLOW改成动态FOLLOW 动态FOLLOW 是静态FOLLOW的子集 SLR(1)问题分析 对于上述文法的规范句型Aababa,当分析达到格局 # A a b aba 由于输入符a∈FOLLOW(A), 若用A-b来归约,得到 # A a A aba 但AaA不是任何规范前缀! 因此在移进a之前,分析将报错. 3. LR(1)项目 因此,将#??a?归约成#?Aa…的前提条件不仅仅是要求a∈FOLLOW(A),还必须要求?Aa是某规范句型的前缀. 为了确保上述条件,应在原来的每个LR(0)项目[A????]中放置一向前搜索符号a: [A????,a],称为LR(1)项目. 向前搜索符号a,记录当前LR(1)项目所处的环境 4. LR(1)项目集闭包算法 类似LR(0)分析,活前缀-DFA的状态是由LR(1)项目集表示 对每个LR(1)项目集I,相应的闭包J的定义为 J := I; repeat J = J ∪ { [ B →.η, b ] | [ A → α.Bβ, a ] ∈ J, b ∈ FIRST( βa ) until J 不再扩大 有可能 β→ ε,此时 b = a 5. GO函数及DFA的构造方法 为求GO(I,X), I为LR(1)项目集,X∈V: GO(I,X)=CLOSURE(J) 其中, J={[ A??X?? , a ] | [ A???X? , a ] ?I} 注意,每个LR(1)项目与其后继项目有相同的搜索符号 例:LR(1)项目集及DFA G[S]的拓扩文法 0. S’→S 1. S→AaDC 2. C→Cba 3. C→ba 4. D→A 5. D→Ba 6. A→b 7. B→b 6. LALR(1)分析简介 简化 LR(1) 分析 减少资源开销 ( lookahead-LR ) 在不带来移进-归约冲突的条件下,合并状态,重构分析表 可行性(合并条件) LR(1) 项目有相同的 LR(0) 项目,但后继符可能不同 (可能带来归约-归约冲突) LALR(1)分析简介 高于 SLR(1) 分析 合并的后继符仍为 FOLLOW 集的子集 局限性 合并中不出现归约-归约冲突 LALR(1) 文法定义的依据 7. 关于各类文法的一些结论 各文法类之间的关系见P172图4-24 任何LR(K),LL(K)及简单优先文法类都是无二义性文法; 任何二义性的文法不可能性是LR(K)文法,但借助其它方法,可对某些二义性文法建立无冲突的LR(K)分析表; LR(0) SLR(K)LALR(1) LR(K) 习题 4-38: (1),(2),(3),(4) 4-37 4-41 * 请同学们动手画出 识别G[S]的全部活前缀的DFA 是否存在冲突? 冲突能由SLR(1)规则解决吗?
您可能关注的文档
- AD 板书自转公转两者关系练习.PPT
- 99学年上学期建筑图学.PDF
- const int hour; 注意:常数据成员的初始化 - 中科大继续教育学院.PPT
- ATM软件基础知识.PPT
- CNS15156-200 高压配电盘新标准介绍.PDF
- C 中南美洲手册P53 习评量学.PPT
- DNSSEC Authoritative Server建置SOP - DNSSEC技术中心.PDF
- CU Physics Newsletter 中大物理通讯 - Department of Physics, CUHK.PDF
- Elspec在风电场高压补偿的应用 - 上海以华电气技术有限公司.DOC
- Ethan Frome - 教育技术通讯.DOC
文档评论(0)