大连理工大学编译原理PPT.ppt_第1页
大连理工大学编译原理PPT.ppt_第2页
大连理工大学编译原理PPT.ppt_第3页
大连理工大学编译原理PPT.ppt_第4页
大连理工大学编译原理PPT.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、温故知新,上下文无关文法,自上而下,自下而上,LL(1)文法,2个函数,任何两个产生式A | 都满足下列条件: 1、FIRST( ) FIRST( ) = 2、若 * ,那么FIRST() FOLLOW(A) = ,递归下降预测分析,非递归的预测分析,3.3 自上而下分析,3.3.6 预测分析的错误恢复 编译器的错误概述 : 词法错误,如标识符、关键字或算符拼写错误 语法错误,如算术表达式的括号不配对 语义错误,如算符作用于不相容的运算对象 逻辑错误,如无穷的递归调用,3.3 自上而下分析,分析器对错误处理的基本目标 清楚而准确地报告错误的出现 迅速地从每个错误中恢复过来,以便诊断后面的错误,

2、并尽量少出现伪错误 它不应该使正确程序的处理速度降低太多,3.3 自上而下分析,非递归预测分析在什么场合下发现错误 栈顶的终结符和下一个输入符号不匹配 栈顶是非终结符A,输入符号是a,而MA , a是空白,3.3 自上而下分析,非递归预测分析:采用紧急方式的错误恢复 发现错误时,分析器每次抛弃一个输入记号,直到输入记号属于某个指定的同步记号集合为止。 同步 词法分析器当前提供的记号流能构成的语法结构,正是语法分析器所期望的。,3.3 自上而下分析,同步记号集合的选择 把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合。 if expr then (then是expr的一个同步记号),

3、3.3 自上而下分析,同步记号集合的选择 把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合。 把高层结构的开始符号加到低层结构的同步记号集合中。 a := expr ; if (语句的开始符号作为表达式的同步符号,以免遗漏分号时忽略一大段程序。),3.3 自上而下分析,同步记号集合的选择 把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合。 把高层结构的开始符号加到低层结构的同步记号集合中。 把FIRST(A)的终结符加入A的同步记号集合。,3.3 自上而下分析,同步记号集合的选择 把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合。 把高层结构的开始符号加到低

4、层结构的同步记号集合中。 把FIRST(A)的终结符加入A的同步记号集合。 如果非终结符可以产生空串,若出错时栈顶是这样的非终结符,则可以使用产生空串的产生式。,3.3 自上而下分析,同步记号集合的选择 把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合。 把高层结构的开始符号加到低层结构的同步记号集合中。 把FIRST(A)的终结符加入A的同步记号集合。 如果非终结符可以产生空串,若出错时栈顶是这样的非终结符,则可以使用产生空串的产生式。 如果终结符在栈顶而不能匹配,弹出此终结符。,同步记号加到表3.1的分析表上,总结一下出错的三种情况: 1 查表,表项是空白,栈顶不变,输入串指针

5、后移;(相当于抛弃记号) 2 查表,表项是synch,弹栈,并且弹出的是一个非终结符 3 栈顶终结符和输入串终结符不匹配,弹栈,将栈顶终结符弹出,文法G: S-aSb | P P-bPc | bQc Q-Qa | a (1)它是chomsky哪一型文法? (2)它生成的语言是什么? (3)给出提取左因子、消除左递归之后的文法G (4)求出文法G每个非终结符的First集和Follow集 (5)构建文法G的LL(1)预测分析表 (6)文法G是否是LL(1)文法 (7)利用非递归预测分析程序,验证abacb是否是文法G描述的语言的句子,文法G: S-aSb | P P-bPc | bQc Q-Qa

6、 | a (1)它是chomsky哪一型文法? 答:它是2型文法,即上下文无关文法。 (2)它生成的语言是什么? 答:aibjakcjbi | i=0; j,k=1,文法G: S-aSb | P P-bPc | bQc Q-Qa | a (3)给出提取左因子、消除左递归之后的文法 答: S-aSb | P P-bP P-Pc | Qc Q-aQ Q-aQ | ,S-aSb | P P-bP P-Pc | 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集,(5)构建LL(1)预测分析表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论