第二章 形式语言与自动机理论基础(有限自动机)1.ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:73 大小:1.3MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

第二章 形式语言与自动机理论基础(有限自动机)1.ppt

第二章形式语言与自动机理论基础(有限自动机)1.ppt

预览

免费试读已结束,剩余 63 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2.2有限自动机一DFAM定义一个确定的有限自动机DFAM是一个五元组M=(Σ,S,S0,Z,f)例设DFAM=({a,b},{0,1,2,3},0,{3},f)其中f(0,a)=1,f(1,a)=3f(2,a)=1,f(3,a)=3f(0,b)=2,f(1,b)=2f(2,b)=3,f(3,b)=3所谓确定的状态机,其确定性表现在状态转移函数是单值函数!(2)转移矩阵0三DFAM接受的语言(字符串集)如果对所有w∈Σ*,以下述方式递归地扩充f的定义f(q,ε)=qf(q,wa)=f(f(q,w),a)对于上例中的DFAM和w=baa,f(0,baa)=f(2,aa)=f(1,a)=3从状态转换图看,从初态出发,沿任一条路径到达终结状态,这条路径上的弧上的标记符号连接起来构成的符号串为DFAM所识别。DFAM所能识别的符号串的全体记为L(M),称为DFAM所识别的语言。2.2.2非确定的有限自动机(NFA)NondeterministicFiniteAutomata非确定有限自动机M是一个五元组M=(Σ,S,S0,Z,f)其中Σ,S,Z的意义和DFA的定义一样,其中S0表示初始状态集,f是一个从S×(Σ∪{})到S的子集的映射,即f:S×(Σ∪{})2S,其中2S是S的幂集,即S中所有子集组成的集合。0类似DFA,NFAm可用状态转换图表示,如果f(q,a)={q1,q2...,qk},则从q出发分别向q1,q2...,qk各画出一条标记为a的箭弧(非确定的含义)。同理可定义NFAm所识别(接受)的语言。Σ*中所有可能被NFAm所识别的符号串的集合记为L(M)。定理对任何一个NFAM,都存在一个DFAM’,使L(M’)=L(M)构造方法:用M’的一个状态对应M的多个状态,用这种方法,能从一个NFAM构造一个等价的DFAM’,称作子集构造法。—closure(f(A,a))的含义NFA中从集合A中的状态出发,先经若干箭弧,接着经标记为a的箭弧到达的状态集合的—closure。states等价的DFA的状态转换图例:有NFAM’A=ε-closure({1})={1,4}DFAM的状态图:具有-转移的NFA构造等价DFA的方法例NFAM=(0,1,q0,q1,q0,{q1,f),其中f(q0,0)=q0,q1,f(q0,1)=q1f(q1,0)=f(q1,1)=q0,q12.2.3确定有限自动机的化简区分终态与非终态NFA2.3正规式(正规表达式)与有限自动机2.3.1正规表达式与正规集正规表达式的递归定义规定“*”,“连接”,“”运算左结合,优先级由高到低简化正规式(a)((b)*(c))等价于ab*c例:=A,B,…,Z,a,b,…,z,0,1,…,9正规式1:AB...Zab...z语言1:L(A)∪L(B)…∪L(Z)∪L(a)∪L(b)...∪L(z)=A,B,…,Z,a,b,…,z正规式2:01...9语言2:L(0)∪L(1)∪...∪L(9)=0,1,…,9例=a,b(a)abL(a)∪L(b)=a,b(b)(ab)(ab)(L(a)∪L(b))(L(a)∪L(b))=aa,ab,ba,bb(c)a*(L(a))*=,a,aa,aaa,aaaa,…(d)(ab)*(L(a)∪L(b))*={,a,b,aa,ab,ba,bb,aaa,...(e)aa*b符号串a和包括零个或多于零个a后跟一个b构成的所有符号串思考:C++语言的标识符?正规式:(AB...Zab...z_)((AB...Zab...z)_(01..9))*语言:A,B,…,Z,a,b,…,z,_(A,B,…,Z,a,b,…,z,_,0,1,…,9)*正规表达式的代数性质描述单词符号的结构,是进行词法分析程序设计的第一步,在表示的基础上如何做进一步的工作?2.3.2正规式与有限自动机关系图:对于上任一正规表达式r,一定能构造一个NFAm,使得L(r)=L(m)。首先把转换图的概念拓广,每条弧上可以用一个正规式标记,对NFAm构造一个广义的转换图。其中只有开始状态S和终止状态Z,连接S和Z的有向弧上是正规式R,然后按照下面的替换规则对正规式不断进行分解,不断加入状态结点和箭弧,直到转换图上的所有弧标记都是上的元素或为止。a设={x,y},上的正规式R=xy*(xy|yx)x*,构造一个NFAM,使L(M)=L(R).对于上任一NFAm,能构造上一个正规表达式r