- 1、本文档共119页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
同济大学编译原理第五章语法分析自下而上分析
* 项目集就是对于活前缀的有效项目的集合 * SLR(1)分析表的构造 假定一个LR(0)规范族中含有如下的项目集(状态)I: I={ X→ ? · bβ, A → ?· , B → ?· } 该项目集中含有移进-归约冲突和归约-归约冲突。 如何解决这种冲突? LR(0)在归约时不向前看输入符号; 在LR(0)基础上,如果存在移进-归约冲突或归约-归约冲突,则LR(k)方法通过向前看k个输入符号来解决冲突(利用上下文信息来消除当前的歧义) 因为只对有冲突的状态才向前查看一个符号,以确定做哪种动作,因而称这种分析方法为简单的LR(1)分析法,用SLR(1)表示 对于归约项目A? ? · ,B ? ? · 分别求Follow(A)和Follow(B),如果满足如下条件 FOLLOW(A)∩FOLLOW(B)=? FOLLOW(A)∩{b}= ? FOLLOW(B)∩{b}= ? 那么,当在状态I时面临某输入符号为a时,则构造分析表时用以下方法即可解决冲突动作。 (1) 若a=b,则移进。 (2) 若a∈Follow(A),则用A → ? 进行归约。 (3) 若a∈Follow(B),则用B → ? 进行归约。 (4) 此外,报错。 SLR(1)文法 假若一个文法G的拓广文法G?的活前缀识别自动机中对于形如I={ X→ ? · bβ, A → ?· , B → ?· }含有移进-归约冲突和归约-归约冲突的状态(项目集)满足下述情况: FOLLOW(A)∩FOLLOW(B)=? FOLLOW(A)∩{b}= ? FOLLOW(B)∩{b}= ? 则称G是一个SLR(1)文法。 SLR(1)分析表的构造 例如文法: (0) S’ →E ????? (1) E→E+T ????? (2) E→T ????? (3) T→T*F ????? (4) T→F ????? (5) F→(E) ????? (6) F→i 状态描述序列如下: 状态 项目集 后继符号 后继状态 I0 { S’→ · E E→ · E+T E→ · T T→ ·T*F T→ · F F→ ·(E) F→ ·i } E E T T F ( i S1 S1 S2 S2 S3 S4 S5 I1 { S’→E · E→E · +T } #S’→E + S12 S6 I2 {E→T· T→T· *F } #E→T · * S12 S7 I3 {T→F · } #T→F S12 状态 项目集 后继符号 后继状态 I4 {F→(· E) E→· E+T E→ · T T→·T*F T→· F F→·(E) F→·i } E E T T F ( i S8 S8 S2 S2 S3 S4 S5 I5 {F→i· } #F→i S12 I6 {E→E+·T T→ · T*F T→ · F F→·(E) F→·i} T T F ( i S9 S9 S3 S4 S5 I7 {T→T* · F F→ ·(E) F→ ·i } F ( i S10 S4 S5 状态 项目集 后继符号 后继状态 I8 {F→( E · ) E→E · +T } ) + S11 S6 I9 {E→E+T · T→T · *F } #E→E+T * S12 S7 I10 {T→T*F · } #T→T*F S12 I11 {F→( E ) · } #F→(E) S12 I12 { } 由上图可见,I1、I2和I9的项目集均不相容,其有移进项目和归约项目并存,构造LR(0)分析表如下: 状 态 ACTION GOTO i + * ( ) # E T F S0 S5 S4 1 2 3 S1 S6 acc S2 r2 r2 r2 S7 r2 r2 r2 S3 r4 r4 r4 r4 r4 r4 S4 S5 S4 8 2 3 S5 r6 r6 r6 r6 r6 r6 S6 S5 S4 9 3 S7 S5 S4 10 S8 S6 S11 S9 r1 r1 r1 S7 r1 r1 r1 S10 r3 r3 r3 r3 r3 r3 S11 r5 r5 r5 r5 r5 r5 SLR(1)方法 从上表也可见在S1, S2, S9中存在移进-归约冲突 。这个表
您可能关注的文档
- 单元十二拖拉机汽车行驶稳定性(新).ppt
- 单元5驱动桥结构原理.pptx
- 材料成形技术基础 第2章.ppt
- 材料的电学性能201205161.ppt
- 材料科学与工程基础作业讲评-3.ppt
- 单周期CPU及其Verilog_HDL实现.ppt
- 材料科学与工程基础习题评讲1.ppt
- 南坪步行街商圈外展研讨.ppt
- 南通市2015届高三第三次调研语文讲评.ppt
- 材料分析测试技术-材料X射线衍射和电子显微分析.ppt
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
文档评论(0)