第二章词法分析非确定有限自动机优秀PPT.ppt
《第二章词法分析非确定有限自动机优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第二章词法分析非确定有限自动机优秀PPT.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章词法分析非确定有限自动机第一页,本课件共有29页第2章 outlinep一、词法分析概述一、词法分析概述1 1,词法分析程序的功能,词法分析程序的功能2 2,词法分析相关的一些问题,词法分析相关的一些问题p二、正则表达式二、正则表达式p三、有限自动机三、有限自动机1 1,确定有限自动机,确定有限自动机DFADFA2 2,非确定有限自动机,非确定有限自动机NFANFA,NFANFA到到DFADFA的转换的转换3 3,DFADFA的化简的化简4 4,正则表达式到,正则表达式到NFANFA的转换的转换p四、词法分析程序构造四、词法分析程序构造 第二页,本课件共有29页2、非确定有限自动机确定有
2、限自动机是五元组确定有限自动机是五元组(SS,SS,S0,TS,S0,TS)确定性体现:初始状态唯一、转换函数是单值函数确定性体现:初始状态唯一、转换函数是单值函数非确定有限自动机:也是五元组非确定有限自动机:也是五元组(SS,SS,S0,TS,S0,TS)其中 SS=S0,S1,SnSS=S0,S1,Sn是状态集是状态集 是字母表是字母表 S0S0 SSSS是初始状态集是初始状态集,不能为空不能为空 是转换函数,但不要求是单值的是转换函数,但不要求是单值的 :SS:SS ()2 2SSSS TS TS SSSS是终止状态集,可为空。是终止状态集,可为空。第三页,本课件共有29页非确定有限自动
3、机的例子 =a,a,b b SS:SS:S0,S0,S1,S1,S2,S2,S3S3 初始状初始状态态集集:S0S0 ,S1S1 终终止状止状态态集集:S3S3 :(S0,a)(S0,a)S1,S1,S3S3,(S0,(S0,)S2,S2,(S1,b)(S1,b)S1,S1,(S1,(S1,)S2,S2,(S2,(S2,)S3,S3,(S3,(S3,b)b)S3S3NFANFA也可以用状也可以用状态转换图态转换图或状或状态转换态转换矩矩阵阵表示表示第四页,本课件共有29页非确定有限自动机的例子S0S0a aS2S2S3S3 a a b bb bS1S1abS+S1,S3S2S1+S1S2S2S
4、3S3-S3状态集合状态集合第五页,本课件共有29页NFA接受的字符串NFANFA接受的字符串接受的字符串如果M是一个NFA,a a1 1 a a2 2 anan 是一个字符串,如果存在一个状态序列(S0,S1,Sn),满足 S0 S1 ,S1 S2 ,Sn-1 Sn其中 S0 是开始状态之一,Sn 是接受状态之一,则串a1 a2 an 被NFA M接受.NFANFA定定义义的串的集合的串的集合(NFA(NFA接受的接受的语语言言)NFA M接受的所有串的集合,称为M定义的语言,记为 L(M)L(M)a1a1a2a2anan第六页,本课件共有29页NFA与DFA的比较DFADFANFANFA初
5、始状初始状态态一个初始状一个初始状态态初始状初始状态态集合集合 边边不允不允许许允允许许 (S,(S,a)a)S S or or S1,S1,SnSn or or 实现实现容易容易有不确定性有不确定性对于确定的输入串,DFA只有一条路径接受它NFA则可能需要在多条路径中进行选择!第七页,本课件共有29页NFA到DFA的转换例如输入串:100NFANFA需要在多条路径中选择,因此的效率低!但NFA描述问题方便。NFA和DFA都识别正则语言。NFA可转换成DFA。SPQ010101第八页,本课件共有29页NFA到DFA的转换对任意对任意NFANFA,都存在一个,都存在一个DFADFA与之等价。与之
6、等价。转换的思想:消除不确定性转换的思想:消除不确定性合并初始状态集成一个状态合并初始状态集成一个状态消除消除 边边消除多重定义的边。消除多重定义的边。1 12 23 3a aa a1 12,32,3a a4 45 5 4 4,5 5第九页,本课件共有29页-closure(-closure(空空闭闭包包)对对于于给给定的定的 NFANFA A A,和它的一个状和它的一个状态态集合集合 SSSS,SSSS的空的空闭闭包包计计算如下:算如下:第一步:令第一步:令-closure(-closure(SSSS)=SSSS;第二步:如果在状第二步:如果在状态态集集SSSS中存在状中存在状态态s s,s
7、 s到状到状态态s s 存在一条存在一条 边边,并且并且s s -closure(-closure(SSSS ),),则则将将s s 加入加入SSSS的空的空闭闭包包-closure(-closure(SSSS););重复第二步重复第二步,直到再没有状直到再没有状态态可加入可加入-closure(-closure(SSSS).第十页,本课件共有29页-closure-closure的例子的例子S0S0a aS1S1S2S2S3S3 a a b bc c -closure(S0,S1)=S0,S1 S0,S1,S2 S0,S1,S2 S0,S1,S2,S3 第十一页,本课件共有29页转转向状向状
8、态态对对于于NFANFA A A中的中的给给定状定状态态集合集合SSSS 和符号和符号 a a,NextStates(NextStates(SSSS,a a)=s s|对对于状于状态态集集SSSS中的一个状中的一个状态态s1,s1,如果如果A A中存中存在一条从在一条从s1s1到到s s的的a a转换边转换边 SSS2S3S1S1S SSSa aa a(S1,S2,S3,a)=S,S第十二页,本课件共有29页转向状态的例子S0S0a aS1S1S2S2S3S3 a a b bc c NextStates(S0,S1,a)=S1,S3 NextStates(S0,S1,b)=S1 第十三页,本课
9、件共有29页NFANFA到到DFADFA的的转换转换算法算法(子集法子集法)给给定一个定一个 NFANFA A A =,SS,SS,SSSS0 0,TSTS 生成等价的生成等价的 DFADFA A A =,SS,SSS,S0 0,TSTS 步步骤骤(1)(1)令令S S0 0 =-closure(-closure(SSSS0 0),),将将S S0 0 加入加入 SSSS;(2)(2)从从SSSS中中选择选择一个状一个状态态s,s,对对于任意于任意 a a,若有若有 s s =-closure(-closure(NextStates(NextStates(s,s,a a),),令令 (s,(s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 词法 分析 确定 有限 自动机 优秀 PPT
限制150内