词法分析与有限状态自动机课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《词法分析与有限状态自动机课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 词法 分析 有限 状态 自动机 课件
- 资源描述:
-
1、2022-12-17华东师大计算机科学技术系1有限状态自动机有限状态自动机 3.1.1 基本概念基本概念 FA的非形式描述的非形式描述 有限状态自动机由有限状态自动机由3部分组成:部分组成:一根输入带:输入带可以理解成由一系列带一根输入带:输入带可以理解成由一系列带块组成,每个带块上只含有一个输入符号(终结块组成,每个带块上只含有一个输入符号(终结符号),其全体构成集合符号),其全体构成集合VT,特殊符号特殊符号“”表示表示输入符号串的结束,输入符号串的结束,VT。一个输入头:初始时,输入头指向第一个带一个输入头:初始时,输入头指向第一个带块(即指向输入带最左端的带块),输入头每次块(即指向输
2、入带最左端的带块),输入头每次将输入头下方带块上的输入符号读入,然后输入将输入头下方带块上的输入符号读入,然后输入头向右移动一个带块。头向右移动一个带块。2022-12-17华东师大计算机科学技术系2基本概念基本概念 一个有限状态控制器:有限状态控制器所能一个有限状态控制器:有限状态控制器所能处于的状态的全体组成状态集合处于的状态的全体组成状态集合Q,Q中有若中有若干特殊状态:一个初始状态干特殊状态:一个初始状态q0和若干最终状态和若干最终状态qf。开始时有限状态控制器处于初始状态,以。开始时有限状态控制器处于初始状态,以后有限状态控制器所处状态由状态转换函数后有限状态控制器所处状态由状态转换
3、函数 决定。决定。2022-12-17华东师大计算机科学技术系3基本概念基本概念 例例1 令令VT=0,1,2,3Q=S,A,B2030 _ S B A 1 2 3+0 0 S是初态是初态 用用-表表示示A是终态是终态用用+表表示示有向弧表示有向弧表示转换转换2022-12-17华东师大计算机科学技术系4FA的工作过程的工作过程初始时,初始时,FA处于初态,输入头指向第一个输入处于初态,输入头指向第一个输入符,随着带上符号的读入,符,随着带上符号的读入,FA从一个状态转向从一个状态转向另一个状态。若遇到如下情况,另一个状态。若遇到如下情况,FA结束工作:结束工作:1.输入头指向输入头指向、FA
4、处于终态。称输入串被处于终态。称输入串被FA接受。(如接受。(如2030 )2.输入头指向输入头指向、FA不在终态。称输入串不不在终态。称输入串不被被FA接受。接受。(如(如203 )3.FA无法转换。称输入串不被无法转换。称输入串不被FA接受。接受。(如(如1031 )2022-12-17华东师大计算机科学技术系5FA的形式描述的形式描述 定义定义1:有限状态自动机:有限状态自动机M是一个五元组:是一个五元组:M(VT,Q,q0,Qf),其中:,其中:VT:有限非空终结符集合:有限非空终结符集合 Q:有限非空状态集合有限非空状态集合 :从从QVT到到Q的幂集的幂集2Q上的状态转换函数上的状态
5、转换函数 q0:初始状态,:初始状态,q0 Q Qf:最终状态集,:最终状态集,Qf Q|Qf|1 2022-12-17华东师大计算机科学技术系6FA的形式描述的形式描述1.对对q,q1 Qa VT (q,a)=q1的含义为:当前的含义为:当前状态为状态为q,若输入头所指符号为,若输入头所指符号为a,则转向下一状,则转向下一状态态q1,输入头右移。,输入头右移。2.2.是是QVT2Q上的一个单射上的一个单射一般地一般地(q,a)=q1,q2,qn qi Q i=1,2,n因此称因此称FA M为不为不确定的确定的FA,记为,记为NFA。3.若映射若映射 是是QVT Q,即对任何,即对任何q Q,
6、ai VT,(q,ai)至多只有一个元素至多只有一个元素q,称,称FA M是是确定性的确定性的FA,记为,记为DFA。2022-12-17华东师大计算机科学技术系7FA的形式描述的形式描述对对FA的拓展的拓展Q0 Q|Q0|1 即初态可以是一个集合即初态可以是一个集合:从从QVT*到到2Q上的单值映射,即输入上的单值映射,即输入符可以是一个串,包括符可以是一个串,包括 称称M为一个传递图或转换系统或为一个传递图或转换系统或NFA。例例1:M1(VT,Q,q0,F)VT=a,b,Q=q0,q1,q2F=q2:(q0,a)=q1 (q0,b)=q2 (q1,a)=q1 (q1,b)=q1 (q2,
7、a)=q2 (q2,b)=q1M1是一个是一个DFA。2022-12-17华东师大计算机科学技术系8FA的表示的表示3.1.2 状态转换图和状态转换表状态转换图和状态转换表1.1.状态转换图:状态转换图:q q Q 若若q,q Q,a VT,且,且q (q,a),初态用初态用标记、终态用标记、终态用+标记标记 qqqa2022-12-17华东师大计算机科学技术系9状态转换图状态转换图 例例2:例:例1的的DFA M1可表示为:可表示为:q0q2q1abbaa,b2022-12-17华东师大计算机科学技术系10状态转换表状态转换表2.2.状态转换表(矩阵)状态转换表(矩阵)表的列对应输入符号及特
8、殊符号表的列对应输入符号及特殊符号,行,行和和M M的状态的状态q q相对应。相对应。状态转换表的状态转换表的q qi i行行a aj j列中填以列中填以 (q(qi i,a,aj j)中中的状态。的状态。表的第一行和表的第一行和M M的初始状态的初始状态q q0 0相对应;相对应;这一列和最终状态这一列和最终状态q qf f行的元素标以行的元素标以A A,以表,以表示该状态是最终状态。示该状态是最终状态。2022-12-17华东师大计算机科学技术系11状态转换表状态转换表 例例3:例:例1的的DFA M1可表示为:可表示为:Mab q0q1q2q1q1q1q2q2q1A2022-12-17华
9、东师大计算机科学技术系12示例示例 例例4:设计一个接受以:设计一个接受以a为头符号和尾符号,中为头符号和尾符号,中间可出现任意多个间可出现任意多个a,b的符号串的的符号串的FA M。解:解:令:令:VT=a,bQ=q0,q1,q2aq0q2q1aaa,baM是是NFA2022-12-17华东师大计算机科学技术系13FA识别的语言识别的语言1.格局格局FA M的一个格局是二元组(的一个格局是二元组(q,w )q Q,w w VT*2.动作动作对对q (q,a)则则FA M 的动作记为:的动作记为:(q,aw)(q,w)a VT w w VT*3.对对w VT*,q0是初态,称是初态,称w被被F
10、A M所接受,表示为:所接受,表示为:(q0,w)(qf,)qf F*2022-12-17华东师大计算机科学技术系14FA识别的语言识别的语言 定义定义2:设:设M是一个是一个FA,w w VT*若:若:(q0,w)(qf,)qf F q0是初态是初态称称w是是M的一个句子。的一个句子。M句子的全体称为句子的全体称为M的语言,记为:的语言,记为:L(M)=w|(q0,w)(qf,),w w VT*例例5:对例:对例4的的NFA M,输入串,输入串abba 有:有:(q0,abba)(q1,bba)(q1,ba)(q1,a )(q2,)qq2 F abbaabba L(M)L(M)=a|a(a|
11、b)*a*2022-12-17华东师大计算机科学技术系15FA的确定化的确定化 定义定义3:对:对FA M与与FA M,若,若L(M)=L(M)则称则称M与与M等价。等价。3.1.4 FA的确定化的确定化 定理定理3.1 对任一给定的对任一给定的NFA M存在一个存在一个DFA M使使L(M)=L(M)。分析:分析:由定理由定理3.1 L(DFA)L(NFA)由由FA的定义的定义 L(DFA)L(NFA)得到得到 L(DFA)L(NFA)2022-12-17华东师大计算机科学技术系16FA的确定化的确定化证明:证明:“构造性证明构造性证明”对给定的对给定的NFA M(VT,Q,q0,F)构造一
12、个构造一个DFA M(VT,Q,q0,F)1.令令VT VT2.Q 2Q 即即Q的元素是的元素是Q的子集,的子集,Q也是也是有限集,有限集,|Q|=2|Q|3.对对 a VT 若若(qi1,.qin,a)=qj1,qjm 令令(qi1,.qin,a)=qj1,qjm Q4.M的初态的初态q0=q0 Q5.F中的元素由中的元素由Q中那些至少含有中那些至少含有F中一个元素的中一个元素的状态组成,即状态组成,即qj1,qjm F 则则 qjk F 1 k n M M是是DFADFA2022-12-17华东师大计算机科学技术系17FA的确定化的确定化 再证:再证:L(M)=L(M),即要证,即要证 x
13、 VT*(q0,x)qi1,qik,qim F (q0,x)qi1,qik,qim qik F证明:对证明:对x的长度的长度|x|作归纳法作归纳法1.当当|x|=0时,结论成立时,结论成立2.假定假定|x|n,结论成立,结论成立3.当当|x|=n,由由 的定义,结论成立的定义,结论成立*2022-12-17华东师大计算机科学技术系18FA的确定化的确定化 例例6:例:例4的的M 是是NFA 可用表的形式表示为:可用表的形式表示为:Mab q0q1,q2q1q1,q2 q1 q2q2 AMab q0 q1,q2q1,q2 q1,q2 q1 Aq1 q1,q2 q1 确定化确定化2022-12-1
14、7华东师大计算机科学技术系19FA的最小化的最小化 3.1.3 FA的最小化的最小化 一般地说,对给定的一个一般地说,对给定的一个FA M,可以找到任,可以找到任意多个不同的意多个不同的FA M,有,有L(M)=L(M),因,因此得到最小的此得到最小的FA是有意义的。是有意义的。定义定义4:若:若FA的二个状态的二个状态q与与q,对任意一个,对任意一个长度为长度为k或小于或小于k的符号串的符号串w,q接受接受w当且仅当当且仅当q接受接受w,称,称q与与q是是k等价的,否则称等价的,否则称q与与q是是k可区分的。可区分的。q与与q等价的充要条件是对等价的充要条件是对 k 0,q与与q是是k等价的
15、。等价的。2022-12-17华东师大计算机科学技术系20FA的最小化的最小化 状态分离法状态分离法 基本思想:基本思想:对对DFA的状态集的状态集Q进行进行k等价类划分,即将等价类划分,即将Q划划分成分成Qk1,.Qkn的的n个子集,子集中的状态是个子集,子集中的状态是k等等价的。然后进行价的。然后进行k+1的等价类划分的等价类划分直至无法直至无法进一步划分为止。进一步划分为止。则得到的等价子集中各状态等价,可合并为一个则得到的等价子集中各状态等价,可合并为一个状态。状态。2022-12-17华东师大计算机科学技术系21状态分离法状态分离法具体做法:具体做法:1.0等价类划分:将等价类划分:
16、将Q划分成划分成F与与Q-F二个二个0等价类。等价类。2.若已经进行了若已经进行了k等价类划分,等价类划分,Q已经被划分成已经被划分成Q1,Qn(n 2)n个子集,进行个子集,进行k+1等价类划分。等价类划分。对对 Qi(i=1n)q,q Qi,若有,若有a VT,(q,a)Qj 和和(q,a)Ql,jl 或或 (q,a)存在)存在 而而(q,a)不存在或反之。)不存在或反之。则将则将Qi划分为二个子集划分为二个子集Qi1,Qi2,使使q Qi1,q Qi2。3.重复重复2直至无法进一步划分为止。直至无法进一步划分为止。2022-12-17华东师大计算机科学技术系22状态分离法状态分离法4.对
17、每一个子集对每一个子集Qi(i=1n),任选一个代表,任选一个代表qi,并修改并修改,修改方法为:,修改方法为:转向转向Qi中任何一个状态改成转向中任何一个状态改成转向qi。若一个。若一个状态子集中某一状态是原来的开始状态,则状态子集中某一状态是原来的开始状态,则该状态子集的代表就是新的有限状态自动机该状态子集的代表就是新的有限状态自动机的开始状态。同理,若一个状态子集中的状的开始状态。同理,若一个状态子集中的状态均是最终状态,则该状态子集的代表就是态均是最终状态,则该状态子集的代表就是新的有限状态自动机的最终状态。新的有限状态自动机的最终状态。5.抹去可能存在的无用状态与不可及状态抹去可能存
18、在的无用状态与不可及状态。则则DFA M是最小的(或简化的)。是最小的(或简化的)。2022-12-17华东师大计算机科学技术系23状态分离法状态分离法 例例7:试将下图中所示的有限状态自动机:试将下图中所示的有限状态自动机M最最 小化。小化。A B C D E F G a b a b a a a a a b b b b b+2022-12-17华东师大计算机科学技术系24例例7续一续一解:最小化的过程为:解:最小化的过程为:1.初 始 时 的 划 分 由初 始 时 的 划 分 由 2 个 子 集 组 成,即:个 子 集 组 成,即:(A,B,C,D,E,F,G)2.集 合集 合 D,E,F,
19、G 不 需 要 进 一 步 划 分,不 需 要 进 一 步 划 分,考察子集考察子集A,B,C。由于。由于(B,a)=D D,E,F,G,而而(A,a)(C,a)B A,BC,因此因此Q可进一步划分为:(可进一步划分为:(A,C,B,D,E,F,G)。)。3.由于由于(A,b)C A,C,而而(C,b)E D,E,F,G。因此因此Q可进一步划分为:(可进一步划分为:(A,C,B,D,E,F,G)2022-12-17华东师大计算机科学技术系25例例7续二续二 这时不能再划分了,得到的最小化的有限状态这时不能再划分了,得到的最小化的有限状态自动机如下表所示:自动机如下表所示:Mab ABCCBDB
20、DCDDDF2022-12-17华东师大计算机科学技术系26习题习题P55 习题习题31.3.22.3.33.补充题补充题1.1.将如下所示的非确定有限状态自动机将如下所示的非确定有限状态自动机M M确定化和最小确定化和最小化化。M a b S A-A B,C A B A-C-F 2022-12-17华东师大计算机科学技术系272.2.试给出下述每个有限状态自动机所识别的语言试给出下述每个有限状态自动机所识别的语言 0+1 0 0 1 0 1 2 1 3 1 4 5 6 0,1 7 0,1 8 0,1 9 a a a a 1 2 a 3 4 5 a)b)2022-12-17华东师大计算机科学技
21、术系280 1+0 1 1 1 2 0 3 c)2022-12-17华东师大计算机科学技术系29正则表达式(正则表达式(REX)3.2 正则表达式(正则表达式(Regular Expression)、有限)、有限状态自动机、状态自动机、3型文法及其相互间的关系型文法及其相互间的关系 正则表达式又称正规式正则表达式又称正规式 有限状态自动机有限状态自动机(FA)是正则文法(是正则文法(3型文法)型文法)的数学模型,正则表达式(的数学模型,正则表达式(REX)所表示的值,)所表示的值,即为即为FA所能接收的语言的全体,因此这三者所能接收的语言的全体,因此这三者的关系可用下图表示:的关系可用下图表示
22、:FA3型文法型文法REX2022-12-17华东师大计算机科学技术系30正则表达式正则表达式 通常称有限状态自动机和三型文法所接受的语通常称有限状态自动机和三型文法所接受的语言为正则语言言为正则语言。REX在词法分析中有很重要的作用,它可以精在词法分析中有很重要的作用,它可以精确地表示单词符号的组成,定义单词符号集。确地表示单词符号的组成,定义单词符号集。3.2.1 3.2.1 正规式与正规集正规式与正规集 如程序设计语言中的标识符(如程序设计语言中的标识符(ID)可以用)可以用REX表示为:表示为:Let(let|Dig)*其中其中 Let是字母、是字母、Dig是数字是数字 2022-12
23、-17华东师大计算机科学技术系31正则表达式正则表达式 定义定义1:设:设 是字母表。是字母表。上的上的REX及其值及其值REX所所表示的符号串集合(正规集表示的符号串集合(正规集)递归定义如下:)递归定义如下:、是正则表达式,其值表示空集和是正则表达式,其值表示空集和;对对 中每一字母中每一字母ai ,ai是正则表达式,其值表是正则表达式,其值表 示集合示集合ai;若若p,q是是REX,值分别为,值分别为L(p)和和L(q),则则p|q,pq和和p*也是也是 上的上的REX,其值分别是:其值分别是:L(p)L(q),L(p)L(q),L(p)*。有限次使用上述规则得到的仍是有限次使用上述规则
24、得到的仍是 上的上的REX。2022-12-17华东师大计算机科学技术系32正则表达式正则表达式规则:规则:1.1.优先级由高到低为:优先级由高到低为:*,,|,|。2.2.可用可用(,)改变优先级。改变优先级。3.3.记记R R*R R为为R R+值值L(RL(R+)=L(R)=L(R*)L(R)L(R)。性质性质1.1.交换律交换律R|S=S|RR|S=S|R2.2.结合律结合律R|(S|T)=(R|S)|T R(ST)=(RS)TR|(S|T)=(R|S)|T R(ST)=(RS)T3.3.分配律分配律R(S|T)=RS|RTR(S|T)=RS|RT(R|S)T=RT|ST(R|S)T=
展开阅读全文