版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上下文无关文法,自上而下,自下而上,LL(1)文法,2个函数,递归下降预测分析,非递归的预测分析,最左推导,最右推导,!,LR文法,移进-归约分析,归约,移进-归约冲突,规约-归约冲突,句柄,活前缀,右句型的前缀,该前缀不超过最右句柄的右端,1。句柄与某个产生式的右部符号串相同 2。句柄是句型的一个子串 3。把句柄归约成非终结符代表了最右推导逆过程的一步,简单的LR方法(SLR) 规范的LR方法 向前看的LR方法(LALR),温故知新,2,语法分析部分回顾,自上而下分析的知识点 LL(1)文法的判定 FIRST、FOLLOW集的计算(重点) LL(1)文法判定方法 LL(1)分析的实现方法 递
2、归函数实现 非递归的预测分析实现 先求FIRST、FOLLOW集 画预测分析表,3,语法分析部分回顾,应用LL(1)分析方法的步骤 判定文法是否是LL(1)文法 如果不是,则改写文法 消除左递归 提取左因子 如果改写后的文法是LL(1)的,那么进行LL(1)分析 构造LL(1)分析算法 可以采用递归函数实现,也可以采用非递归的栈式分析方法实现,4,文法G: S-aSb | P P-bPc | bQc Q-Qa | a (1)它是chomsky哪一型文法? (2)它生成的语言是什么? (3)给出提取左因子、消除左递归之后的文法 (4)求出每个非终结符的First集和Follow集 (5)构建LL
3、(1)预测分析表 (6)文法G是否是LL(1)文法 (7)利用非递归预测分析程序,验证abacb是否是文法G描述的语言的句子,5,文法G: S-aSb | P P-bPc | bQc Q-Qa | a (1)它是chomsky哪一型文法? 答:它是2型文法,即上下文无关文法。 (2)它生成的语言是什么? 答:aibjakcjbi | i=0; j,k=1,6,文法G: S-aSb | P P-bPc | bQc Q-Qa | a (3)给出提取左因子、消除左递归之后的文法 答: S-aSb | P P-bP P-Pc | Qc Q-aQ Q-aQ | ,7,S-aSb | P P-bP P-P
4、c | Qc Q-aQ Q-aQ | ,First(S)=a,b First(P)=b First(P)=a,b First(Q)=a First(Q)=a, ,Follow(S)=$,b Follow(P)=$,b,c Follow(P)=$,b,c Follow(Q)=c Follow(Q)=c ,(4)求出每个非终结符的First集和Follow集,8,(5)构建LL(1)预测分析表,9,(6)文法G是否是LL(1)文法 答:构建出的LL(1)分析表不含有多重定义的条目,因此文法G是LL(1)文法。,10,(7)利用非递归预测分析程序,验证abacb是否是文法G描述的语言的句子,11,接
5、上表,12,语法分析部分回顾,例2 文法GE: E- T T- TE | F F- a | aF (1) 判断这个文法是不是LL(1)的? (2) 消除左递归、提取左因子之后的文法G是否是LL(1)的?,13,例1 解答: 提取左因子,消除左递归后 文法变为GE: E- T T-F T T-ET | F-aF F-F | ,GS: E- T T- TE | F F- a | aF,语法分析部分回顾,14,FIRST(E) = FIRST(T) = a FIRST(T)= , FIRST(F) = a FIRST(F)= a, FOLLOW(E)=,$ FOLLOW(T)=,$ FOLLOW(T
6、)=,$ FOLLOW(F)= FOLLOW(F)=,GE: E- T T-F T T-ET | F-aF F-F | ,不是LL(1)文法!,通过提取左因子和消除左递归的方法,并不一定能够把文法改写为一个LL(1)文法,语法分析部分回顾,15,左递归的消除 GS: S-Qc|c Q-Sa|a 这是一类间接左递归 S-Sac|ac|c Q-Sa|a,语法分析部分回顾,16,左递归的消除 GS: S-Qc|c Q-Sa|a 这是一类间接左递归 S-acS| cS S-acS| Q-Sa|a,语法分析部分回顾,S-Sac|ac|c Q-Sa|a,17,语法分析部分回顾,LR分析部分的知识点 活前缀
7、 识别活前缀的DFA 分析表 分析算法,18,语法分析内容总结,自下而上分析部分知识点 SLR的DFA的构造及分析表的构成 初始项目集合的产生(拓广文法) 能够识别同一符号的项目都转移到同一集合中 求闭包过程中每一个“.”后面的非终结符都要重新考虑是否已经在状态中列出 对产生式A- 归约,“ri”写在FOLLOW(A)集合中元素对应的位置。,19,语法分析内容总结,自下而上分析部分知识点 LR,LALR的构造方法(在SLR的基础上加上搜索符) 搜索符的求法,根据造成目前项目出现的那个父项目来求。 求闭包的过程中可能出现要添加的项目已经存在,但是搜索符不同的情况,相当于其父项目已经改变,此时需要
8、再求一遍搜索符。,20,语法分析内容总结,自下而上分析部分知识点 SLR,LR,LALR的区别及判别方法 通过构造DFA,看其中的状态是否有冲突(“移进归约” 或 “归约归约”)若有冲突则不属于该文法类型。 通过构造分析表,看其中某项是否有冲突。,21,文法类的层次图,22,语法分析部分回顾,例2 文法GS: S-AaS | bAe | BeS | bBa A-d B-d 判断这个文法是SLR(1)的,还是LR(1)的,抑或是LALR(1)的,23,例2 解答: I2=goto(I0,d),I0 : SS SAaS S bAe SBeS S bBa A d B d,I2 : Ad Bd,d,S
9、-AaS | bAe | BeS | bBa A-d B-d,e属于FOLLOW(A),同时也属于FOLLOW(B), I2里存在归约-归约冲突,语法分析部分回顾,24,LR(1)分析练习题目,基于LR(1)项目来构造识别G活前缀的DFA,并基于DFA构建分析表.,S V = E S E V * E V id E V,25,LR(1)分析练习解答过程,答: Step 1. 对原文法进行拓广 (添加产生式S-S),S V = E S E V * E V id E V,S S S V = E S E V * E V id E V,26,id,S S S V=E S E V *E V id E V,
10、V id ,S V =E E V ,S S ,I0,I1,I2,I5,S E ,I3,V * E E V V id V * E,I4,S,V,*,id,E,S V = E E V V *E V id,I6,=,E,S V=E ,E V ,V,V,I8,id,I3,*,*,V *E ,E,I7,I9,识别产生式文法活前缀的DFA,27,Step 2: 构建识别(拓广)文法活前缀的DFA,I0: S-S, $ S-V=E, $ S-E, $ V-*E, =/$ V-id, =/$ E-V, $,I1: S-S, $,S,I2: S-V=E, $ E-V, $,V,E,I3: S-E, $,*,I4
11、: V-*E, =/$ E-V, =/$ V-*E, =/$ V-id, =/$,id,I5: V-id, =/$,=,I6: S-V=E, $ E-V, $ V-*E, $ V-id, $,E,I8: S-*E, =/$,V,I9: E-V, =/$,*,id,指向I5,E,I10: S-V=E, $,*,I12 : V-*E, $ E-V, $ V-*E, $ V-id, $,I7: E-V, $,V,指向I7,id,I11: V-id, $,E,I13: S-*E, $,V,指向I7,*,id,指向I11,LR(1)分析练习解答过程,28,构建分析表 首先,为表达式编号 然后,计算action表和goto表,0 S S 1 S V = E 2 S E 3 V * E 4 V id 5 E V,LR(1)分析练习解答过程,29,构建分析表 Action(0,*)=s4, action
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省南充市(本年度)小学语文部编版单元测试(难点扫除)完整试卷(含答案)
- 花卉养殖防护:防虫网防治病虫害
- 糖尿病与替代医学:防治的浅谈
- 泻心汤在中医馆治疗感冒的经验
- 个性化定制的物业装修服务承诺
- 糖尿病用药技巧:提高疗效
- 健康心理:高血压防治心理保健
- 植物病虫害防治与环境保护
- 2022年云南省调水中心招聘劳务派遣辅助人员考试试题及答案
- 2022年黄冈黄梅县赴高校专项招聘高层次教师考试试题及答案
- 汽车维修工时收费标准(二类企业)
- 插花技艺智慧树知到课后章节答案2023年下丽水职业技术学院
- 2021义务教育四年级数学国家质量监测试卷
- 舒尔特训练方格可打印(3×3)
- 抛光作业指导书
- 患者跌倒鱼骨图
- 曝气生物滤池(BAF)动画演示
- 饲料厂生产管理标准和操作
- 机动车驾驶员培训结业证书式样
- 健康促进学校领导小组及职责分工
- 土壤及岩石硬度系数表
评论
0/150
提交评论