欢迎来到天天文库
浏览记录
ID:52135838
大小:695.50 KB
页数:32页
时间:2020-04-01
《编译原理课程第7讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、温故知新0型文法1型文法2型文法3型文法上下文无关文法自上而下自下而上LL(1)文法2个函数任何两个产生式A
2、都满足下列条件:1、FIRST()FIRST()=2、若*,那么FIRST()FOLLOW(A)=递归下降预测分析非递归的预测分析a+b$输入预测分析程序分析表M输出XYZ$栈3.3自上而下分析3.3.6预测分析的错误恢复编译器的错误概述:词法错误,如标识符、关键字或算符的拼写错误语法错误,如算术表达式的括号不配对语义错误,如算符作用于不相容的运算对象逻辑错误,如无穷的递归调用3.3自上而下分析分析器对错误处理的基本目标清
3、楚而准确地报告错误的出现迅速地从每个错误中恢复过来,以便诊断后面的错误,并尽量少出现伪错误它不应该使正确程序的处理速度降低太多3.3自上而下分析非递归预测分析在什么场合下发现错误栈顶的终结符和下一个输入符号不匹配栈顶是非终结符A,输入符号是a,而M[A,a]是空白3.3自上而下分析非递归预测分析:采用紧急方式的错误恢复发现错误时,分析器每次抛弃一个输入记号,直到输入记号属于某个指定的同步记号集合为止。同步词法分析器当前提供的记号流能构成的语法结构,正是语法分析器所期望的。3.3自上而下分析同步记号集合的选择把FOLLOW(A)的所有终结符放入非终结符A的同
4、步记号集合。ifexprthen(then是expr的一个同步记号)3.3自上而下分析同步记号集合的选择把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合。把高层结构的开始符号加到低层结构的同步记号集合中。a:=expr;if…(语句的开始符号作为表达式的同步符号,以免遗漏分号时忽略一大段程序。)3.3自上而下分析同步记号集合的选择把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合。把高层结构的开始符号加到低层结构的同步记号集合中。把FIRST(A)的终结符加入A的同步记号集合。3.3自上而下分析同步记号集合的选择把FOLLOW(A)的
5、所有终结符放入非终结符A的同步记号集合。把高层结构的开始符号加到低层结构的同步记号集合中。把FIRST(A)的终结符加入A的同步记号集合。如果非终结符可以产生空串,若出错时栈顶是这样的非终结符,则可以使用产生空串的产生式。3.3自上而下分析同步记号集合的选择把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合。把高层结构的开始符号加到低层结构的同步记号集合中。把FIRST(A)的终结符加入A的同步记号集合。如果非终结符可以产生空串,若出错时栈顶是这样的非终结符,则可以使用产生空串的产生式。如果终结符在栈顶而不能匹配,弹出此终结符。1、DFA,接受0
6、和1的个数都是偶数的字符串312011110000开始偶0偶1奇0奇1奇0偶1偶0奇1巩固与提高2、叙述正规式(00
7、11)((01
8、10)(00
9、11)(01
10、10)(00
11、11))描述的语言。答案:所有由偶数个0和偶数个1构成的串。分析:该正规式的一个重要特点是,它是两个字符一组来考虑的。正规式(00
12、11)表示的串的长度是偶数,每两个字符一组的话,不是00就是11。再看正规式(01
13、10)(00
14、11)(01
15、10),它表示的串由01或10开始,中间有若干组00或11,最后出现01或10。这样的串仍然由偶数个0和偶数个1构成,只不过第一组
16、是01或10的话,那么一定还要有一组01或10才能保证它们的偶数性。显然,正规式(01
17、10)(00
18、11)(01
19、10)(00
20、11)表示的串也仍然是由偶数个0和偶数个1构成。这样,可以判断题目所给的正规式表示的语言的每个句子都是由偶数个0和偶数个1构成。11000011010011000011100110反过来还需要考虑,任何由偶数个0和偶数个1构成的串是否都在这个语言中。这实际上是问,每个这样的串,其结构是否都符合正规式(00
21、11)((01
22、10)(00
23、11)(01
24、10)(00
25、11))所做的刻划。我们可以这样叙述由偶数个0和偶数个
26、1构成的串,从左向右,每两个字符一组地考察,它1,由若干个(强调一下,可以是零个)00或11开始(这由正规式(00
27、11)描述);2.一旦出现一个01或10,那么经过若干个00或11后,一定会出现一个01或10。这第二个01或10的后面可能还有若干个00或11,一直到串的结束,或者到再次出现01或10为止。如果串没有结束的话,就是重复出现这里所描述的结构(所以这由((01
28、10)(00
29、11)(01
30、10)(00
31、11))描述)。因此正规式(00
32、11)((01
33、10)(00
34、11)(01
35、10)(00
36、11))描述的是偶数个0和偶数个1构
37、成的串。110000110100110000111001103、写
此文档下载收益归作者所有