自动机理论-词法分析-PPT课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《自动机理论-词法分析-PPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动机 理论 词法 分析 PPT 课件
- 资源描述:
-
1、第二章 词法分析词法分析概述词法分析概述正则表达式正则表达式自动机理论自动机理论 词法分析器的设计与实现词法分析器的设计与实现3 3 有限自动机有限自动机确定有限自动机确定有限自动机DFADFA非确定有限自动机非确定有限自动机NFANFANFANFA到到DFADFA的转换的转换DFADFA的化简的化简2345待机待选择冲调待取不足投币投币选择恰当/金额充足付咖啡/找零钱取咖啡/取零钱金额不足超时退款退款超时3.13.1 确定有限自动机确定有限自动机定义定义1 1:一个确定有限自动机一个确定有限自动机DFADFA为一个五元为一个五元组组( ( ,S,S,f f,s,s0 0,Z),Z),其中:,
2、其中: 是有穷字母表,每个元素称为一个输入字是有穷字母表,每个元素称为一个输入字符;符;S S是一个有穷集,它的每个元素称为一个状态;是一个有穷集,它的每个元素称为一个状态;f f是在是在 S SS S上的单值转换函数;上的单值转换函数;s s0 0 S S是唯一的一个初始状态;是唯一的一个初始状态;Z Z S S,是终止状态集,又称为接受状态集。,是终止状态集,又称为接受状态集。6701234ccefgdbaab03.1.13.1.1 DFADFA实例实例1 13.1.13.1.1 DFADFA实例实例2 2DFA M=(a, b, S, U, V, Q, f, S, DFA M=(a, b
3、, S, U, V, Q, f, S, Q)Q),其中,其中f f定义为:定义为:f (S, a)=Uf (S, a)=Uf (V, a)=Uf (V, a)=Uf (S, b)=Vf (S, b)=Vf (V, b)=Qf (V, b)=Qf (U, a)=Qf (U, a)=Qf (Q, a)=Qf (Q, a)=Qf (U, b)=Vf (U, b)=Vf (Q, b)=Qf (Q, b)=Q83.1.23.1.2 DFADFA的两种表示方式的两种表示方式状态转换图状态转换图结点表示状态,转换边表示转换函数,边的结点表示状态,转换边表示转换函数,边的箭头方向指向转换函数中定义的转换方向。
4、箭头方向指向转换函数中定义的转换方向。标识出初始状态和终止状态。标识出初始状态和终止状态。状态转换矩阵状态转换矩阵可用二维数组描述。标识出初始状态和终止可用二维数组描述。标识出初始状态和终止状态。若状态。若DFADFA中有中有 f (Sf (SI I, a)=S, a)=SJ J,则:,则: Trans (Trans (S SI I,a)a) S SJ J93.1.33.1.3 DFADFA接受的字符串接受的字符串定义定义2 2:对于对于 * *中的任何字符串中的任何字符串t,t,若存在一条若存在一条从初始结点到某一终止结点的路径,且这从初始结点到某一终止结点的路径,且这条路上所有弧的标记符连
5、接成的字符串等条路上所有弧的标记符连接成的字符串等于于t,t,则称则称t t为为DFA MDFA M所所接受(识别)的字符接受(识别)的字符串串。DFA M DFA M 所能接受的字符串的全体记为所能接受的字符串的全体记为L(M)L(M)称为称为M M所能接受(识别)的所能接受(识别)的语言语言。10思考思考 试用自动机描述银行试用自动机描述银行ATMATM机的状态转换。机的状态转换。 确定有限自动机名字中的确定有限自动机名字中的“确定确定”二字含二字含义、用途、局限?义、用途、局限?113.1.43.1.4 DFADFA的确定性的确定性 初始状态初始状态唯一唯一。 转换函数转换函数f:Sf:
6、SS S是一个是一个单值单值函数,也就函数,也就是说,对任何状态是说,对任何状态s s S,S,和输入符号和输入符号 a a, , f(s,a) f(s,a) 唯一地确定了下一个状态。即转换唯一地确定了下一个状态。即转换函数至多确定一个状态。函数至多确定一个状态。 没有空边没有空边,即不接受任何输入就进行状态,即不接受任何输入就进行状态转换(没有输入为转换(没有输入为 ,有时用,有时用 表示的边)。表示的边)。123.1.5 DFA3.1.5 DFA的局限的局限133.23.2 非确定有限自动机非确定有限自动机定义定义3 3:一个非确定有限自动机一个非确定有限自动机(NFA)A(NFA)A是一
7、个是一个五元组五元组A=(A=( ,SS, f, S,SS, f, S0 0,TS).,TS).其中其中 是字母表是字母表SSSS是状态集是状态集f f是转换函数是转换函数 f: SS f: SS ( ( ) ) 2 2SSSSS S0 0是初始状态集是初始状态集TSTS是终止状态集是终止状态集143.2.13.2.1 NFANFA接受的字符串接受的字符串定义定义4 4:设设A A是一个是一个NFANFA,A= (A= ( ,SS, f, S,SS, f, S0 0,TS),TS)则定义则定义L(A)L(A)为从任意初始状态到任意终止状为从任意初始状态到任意终止状态所接受的字符串集合。态所接受
8、的字符串集合。 L(A)=L(A)= |s|s0 0 s, ss, s0 0 S S0 0 ss TSTS 一个一个NFANFA的例子的例子SPZ00,1111153.2.23.2.2 等价和等价和NFANFA的确定化转换的确定化转换 自动机等价自动机等价设设A A1 1和和A A2 2是同一个字母表上的自动机,如果是同一个字母表上的自动机,如果有有L(AL(A1 1)=L(A)=L(A2 2) ),则称,则称A A1 1和和A A2 2等价。等价。 NFANFA到到DFADFA的转换(确定化)的转换(确定化)定理:对于每一个非确定自动机定理:对于每一个非确定自动机A A,存在一,存在一个确定
9、自动机个确定自动机AA,使得,使得L(A)=L(A)L(A)=L(A)。163.2.2.13.2.2.1 NFANFA的一种确定性方法的一种确定性方法 子集法子集法已知已知 NFA: A=(NFA: A=( , S, f, S, S, f, S0 0, Z), Z)构造构造 DFA: A=(DFA: A=( , S, f, S, S, f, S0 0, Z), Z)1.1.令令AA的的初始状态初始状态为为S S0 0=S=S1 1,S,S2 2,S,Sk k,其中其中S S1 1SSk k是是A A的的全部初始状态。全部初始状态。2.2.若若X=SX=S1 1,S,Sm m 是是AA的一个状态
10、,的一个状态,a a则定义则定义f(X,a)=f(Sf(X,a)=f(S1 1,a),a) f(Sf(S2 2,a),a) f(Sf(Sm m,a)=Q,a)=Q,将,将Q Q加入加入SS,重复该过程,直到重复该过程,直到SS收敛。收敛。3.3.若若Y=SY=S1 1,S,Sn n 是是AA的一个状态的一个状态, ,且存在一个且存在一个S Si i是是A A的终的终止状态,则令止状态,则令Y Y为为AA的的终止状态终止状态。17NFANFA确定化实例确定化实例18132564带带“空空”边的自动机边的自动机19012spaceD+-.D4D3闭包?!闭包?! 在数学中,一个集合被称为在某个运算
11、下在数学中,一个集合被称为在某个运算下闭合闭合,如果在这个集合的成员上的运算生,如果在这个集合的成员上的运算生成这个集合的成员。如自然数之与减法。成这个集合的成员。如自然数之与减法。 当一个集合当一个集合S S不闭合在某个运算下的时候,不闭合在某个运算下的时候,我们通常可以找到包含我们通常可以找到包含S S的最小的闭合集合的最小的闭合集合。这个最小闭合集合被称为。这个最小闭合集合被称为S S的的( (关于这个关于这个运算的运算的) )闭包闭包。如在自然数集的减法下的闭。如在自然数集的减法下的闭包,是整数集。包,是整数集。203.2.2.23.2.2.2 带空边的带空边的NFANFA的确定化的确
12、定化定义定义5 5:设设I I是是NFANFA的状态集的子集,则的状态集的子集,则I I的的 闭闭包包为:为: _CLOSURE(I)=I_CLOSURE(I)=I q|f(p, q|f(p, )=q,)=q, p p_CLOSURE(I)_CLOSURE(I)定义定义6 6:设设I I是是NFANFA状态集的子集,则状态集的子集,则I Ia a= = _CLOSURE(J)_CLOSURE(J),J=q|f(p,a)=q,J=q|f(p,a)=q, p p II21 修改后的子集法修改后的子集法已知已知 A A:NFA, NFA, 构造构造 A A:DFA:DFA1.1.令令AA的初始状态为
13、的初始状态为I I0 0= _CLOSURE(_CLOSURE(S S1 1,S,S2 2,S,Sk k),),其中其中S S1 1SSk k是是A A的的全部初始状态。全部初始状态。2.2.若若I=SI=S1 1,S,Sm m 是是AA的一个状态,的一个状态,a a则定义则定义f(I, a)=If(I, a)=Ia a将将I Ia a加入加入SS,重复该过程,直到,重复该过程,直到SS收敛。收敛。3.3.若若I=SI=S1 1,S,Sn n 是是AA的一个状态的一个状态, ,且存在一个且存在一个S Si i是是A A的终止状态,则令的终止状态,则令II为为AA的终止状态。的终止状态。22 带
14、空边的带空边的NFANFA确定化的例子确定化的例子23I I0 0=1,2=1,2I I1 1=I=I0a0a=2,4,5,6,7=2,4,5,6,7I I2 2=I=I0b0b=3,8=3,8I I3 3=I=I1a1a=I I4 4=I=I1b1b=3,8,9=3,8,9I I5 5=I=I2a2a=9=9I I6 6=I=I2b2b=I I7 7=I=I4a4a=9=I=9=I5 5I I8 8=I=I4b4b=24DFA M=DFA M=( (, , I I0 0,I,I1 1,I,I2 2,I,I4 4,I,I5 5, f(I f(I0 0,a)=I,a)=I1 1, f(I f(I
展开阅读全文