编译原理课程总复习.ppt_第1页
编译原理课程总复习.ppt_第2页
编译原理课程总复习.ppt_第3页
编译原理课程总复习.ppt_第4页
编译原理课程总复习.ppt_第5页
已阅读5页,还剩150页未读 继续免费阅读

下载本文档

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

文档简介

1、编译原理课程总复习,围棋,前端:依赖于源语言,与目标机器无关。前端后端、后端:依赖目标系统,无论源语言如何。第二章词汇分析器,词汇分析器工作原理:词汇符号的说明和识别,公式表达式的示例=A,B A | B A,B (A | B) (A | B) A,AB,BA, B | Bb a*由字符a组成的所有字符串集(a | b)*由a和b组成的所有字符串集的复杂示例(00 | 11 | (01 | 10) (00 | 11) (01 | 10) Digit)?简化规则:r=rr* r?=r | a-z=a | b | c | z ABC=a | b | c,状态转换图,转换图关系运算符的转换图,rel

2、op | |=,有限自动机,有符号集输入转换函数move:s状态s0是启动状态。F S是接受状态的集合。识别语言(a|b)*ab的NFA,缺点:1,输入字符包含2,对一个字符输入多个输出边,限制机器人,确定的有限自动机(DFA)数学模型(例如,包含状态)输入字母表,转换函数move :唯一初始状态S S S;最终状态集F S;识别语言(a|b)*ab的DFA,优点:1,输入字符不包含2,一个字符只能有唯一的输出边,NFA-DFA转换子集配置,状态,NFA-DFA转换子集配置,状态NFA-DFA转换配置A=0、1、2、4、7 B=1、2、3、4、6、7、8 C=1、2、4、5、2、4、5、6、6

3、 NFA到DFA转换子集配置方法,状态,A=0、1、2、4、7 B=1、2、3、4、6、7、8c=1、2、4、5B=C,子集原始接受状态和非接受状态子集,分解后删除死亡状态(如果存在),即使起始状态不可访问也删除,简化DFA,方法1。移动A、B、C、D(A、B、C、C、1,添加死亡状态2,合并无法区分状态。首先,将状态集分为非接受状态集0、1、2、3、5和接受状态集4。1集4不能再分解。我们看到集0、1、2、3、5。Move (0,1,2,3,5,a)=1,2,5 move (0,1,2,3,5,b)=3,4,5 b转换因此状态集合的其他分割为1,2move (0,3,a)=1 move (0

4、,3,b)=3,因此无需再除以。这样把状态0和状态3加在一起,我们以0为代表,删除死状态5就能得到那个问题的结果。正确的方法!初始分隔为0、1、2、3、4。1状态集的进一步划分是错误的做法,认为1,2,0,3,4 2无视死状态的影响,不再需要分离!1,直接合并不能区分状态。正则表达式中的有限自动机,正则表达式,电脑实现,状态转换度,有限自动机,不确定的有限自动机,有限自动机确定,等价,正则表达式中的有限自动机,正则表达式中的有限自动机,正则表达式中的有限自动机,正则表达式中的有限自动机,正则表达式中的有限自动机,正则表达式中的有限自动机,正则表达式中的有限自动机,正则表达式中的有限自动机,(a

5、|b)*ab中的两个NFA的比较,语言中的方法:1, 例如:识别=0,1可分为5的二进制数,从语言确定的有限机器人到语言确定的有限机器人,例如:识别=0,1可分为5的二进制数,从语言确定的有限机器人,例如:识别=1可分为5的二进制数,从语言确定的有限机器人到语言确定的有限机器人,例如:识别=0,1 从语言到确定的有限机器人,配置DFA,将0和1的数量全部接受为偶数的字符串,从语言中确定的有限机器人,摘要,正则表达式,电脑实现,状态转换图,不确定性合并非歧视状态,最简单的自动机确定,等价,语言,有限自动机确定,状态枚举方法,第三章语法分析器上下文无关文法e a e | (e) | e | id

6、a正则表达式定义letter A-za-z digit 0-9 id letter(letter | digit)*,上下文无关文法(letter | digit左边递归语法删除左边递归.A直接左递归A A A |,语言和语法删除非直接左递归S Aa | b A Sd |直接左递归S Aa | b A Aad | BD |下一个左递归S Aa | b A BD A | A A adA |,语言和语法,带左参数的语法A 1 | 2 最左侧的导数,最右侧的导数,异议,消除异议,左侧重复,删除左侧重复,删除左侧元素,删除左侧元素,删除左侧元素FIRST () FOLLOW (A)=a | S * A

7、a,aVT .如果是,则将终结点添加到第一个,将第一个(Y)添加到第一个(X)。XY1Y2.YK和Y1,Y2,Yi-1都是非终止元,Y1、Y2、将$添加到Yi-1的FIRST集合、FIRST集合和FOLLOW集合计算方法、FOLLOW集合计算方法语法起始符号S、FOLLOW(S)中。如果AB存在,请将FIRST()添加到FOLLOW(B)中。(此处可以为空)如果有A B或A B,并且是* (FIRST(),则将FOLLOW(A)添加到FOLLOW(B)(此处可以为空)。、first集合和FOLLOW集合计算方法、FIRST集合和FOLLOW集合计算方法,例如e te te | t ft * ft | f (e) | id、FIRST集合和FOLLOW集合计算方法first集合和FOLLOW示例e te | t ft * ft | f(e)| id first(e)=first(t)=first(f)=(,id first=(,id first (e) FIRST集合和FOLLOW集合的计算方法,例如e

温馨提示

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

评论

0/150

提交评论