编译原理第三章自动机基础(1)_第1页
编译原理第三章自动机基础(1)_第2页
编译原理第三章自动机基础(1)_第3页
编译原理第三章自动机基础(1)_第4页
编译原理第三章自动机基础(1)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、3.1 3.1 正规语言及其描述方法正规语言及其描述方法【内容提要内容提要】 自动机自动机 是一种语言模型,是语言的一种识别是一种语言模型,是语言的一种识别工具,其中的工具,其中的 有限自动机有限自动机(finite automata(finite automata)FAFA 被用来处理被用来处理 正规语言正规语言,后者是编译程序设计中后者是编译程序设计中词法词法分析分析的对象。的对象。3.2 3.2 有限自动机的定义与分类有限自动机的定义与分类3.3 3.3 有限自动机的等价变换有限自动机的等价变换1,21,23.4 3.4 有限状态自动机的实现问题有限状态自动机的实现问题3.5 3.5 正

2、规语言描述方法间的相互转换正规语言描述方法间的相互转换 【定义定义】 正规语言正规语言是指由是指由正规文法正规文法定义的语言;定义的语言;程序设计语言中的程序设计语言中的单词单词,大都属于此种语言。,大都属于此种语言。正规语言正规语言有三种等价的表示方法:有三种等价的表示方法: 正规文法正规文法 正规式正规式 有限自动机有限自动机正规文法正规文法是指仅有三种形式的产生式:是指仅有三种形式的产生式: A - aB A - aB A - a A - a A - A - 【例例3.13.1】 G(Z) G(Z):A -aA| A -aA| A= A= ; ; A A=aA=aaA=aaaA=aA=a

3、aA=aaaA=a=an n ,n0,n0 L(G)= a L(G)= an n | n0 | n0 正规文法正规文法正规语言正规语言【例例3.23.2】 L1 = a L1 = am mb bn n| m0 ,n1 , | m0 ,n1 , 正规语言正规语言 ? ? 可由正规文法定义:可由正规文法定义: G1(S): S - aS|bA ; A - bA|G1(S): S - aS|bA ; A - bA| L1 L1 是正规语言。是正规语言。 【例例3.33.3】 L2 =(ab) L2 =(ab)n n| n1 , | n1 , 正规语言正规语言 ? ? 可由正规文法定义:可由正规文法定

4、义: G2(S): S - aA ; A - bB ; B - aA|G2(S): S - aA ; A - bB ; B - aA| L2 L2 是正规语言。是正规语言。 【例例3.43.4】 L3 =a L3 =an nb bn n| n0 , | n0 , 正规语言正规语言 ? ? 不能由正规文法定义不能由正规文法定义( (正规文法无法描述正规文法无法描述a a和和b b数量数量上相等!上相等!) ): L3 L3 不是正规语言!不是正规语言! 3.1.1 3.1.1 正规语言正规语言的的正规式正规式表示法表示法 正规式正规式 是指由字母表中的符号,通过以下是指由字母表中的符号,通过以下

5、三种运算三种运算( (也可以使用圆括号也可以使用圆括号) )连接起来构成的表达式连接起来构成的表达式 e e : 连接连接 ( ( . .) ) 或或( ( | | ) ) 闭包闭包( ( + +,* * ) ) 设设 val(e)val(e), ,L(e) L(e) 分别表示正规式分别表示正规式 e e 的的值值和和语言,语言,则:则: L(e)= x| x=val(e) L(e)= x| x=val(e)即即 正规式正规式表示的表示的语言语言是该是该正规式所有值的集合正规式所有值的集合( (正规集正规集) )。例: 正规式正规式 正规式的正规式的 值值 ab.cde ab.cde abcd

6、e abcde ab|cde ab|cde ab , cde ab , cde a a+ +a ,aa ,aaa ,a ,aa ,aaa , ,a ,an n , ,a a* * , a , aa , aaa , , an , 正规式正规式表示表示正规语言正规语言示例:示例:展开:展开: L(e3) = ab L(e3) = abn nc, bc, bn n | n0 | n0 , L(e2) = (ab) L(e2) = (ab)n n| n1 | n1 , e2=(ab) e2=(ab)+ + e3= ab e3= ab* *c|bc|b* * L L(e1e1)= a= am mb bn

7、 n| m0 ,n1 | m0 ,n1 , e1= a e1= a* *b b+ + = b,ab,bb,aaab,aab,abb,aabb, = b,ab,bb,aaab,aab,abb,aabb, = ab,abab,ababab,abababab, = ab,abab,ababab,abababab, = ac,abc,abbc,abbbc, = ac,abc,abbc,abbbc,; ; ,b,bb,bbb,b,bb,bbb, 【例例】:3.1.2 3.1.2 正规语言正规语言的的有限自动机有限自动机表示法:表示法: L3= ab L3= abn nc c ,b,bn n|n0 |n0

8、 , L2= (ab) L2= (ab)n n| n1 | n1 , L1= a L1= am mb bn n| m0 ,n1 | m0 ,n1 ,+ + b- -ab+ + b- -aa+-abcbb-FA1:FA1:FA2:FA2:FA3:FA3: 初看起来,有限自动机是带标记的有向图!初看起来,有限自动机是带标记的有向图!1,2,3,4 1,2,3,4 状态集状态集; ; 其中:其中: +(+(开始状态开始状态) );-(-(结束状态结束状态) )a,b,c a,b,c 字母表;字母表; (1,a)=2 (1,a)=2 变变换换 ( ( 或或 ););a L3= L3= ab abn n

9、c c ,b,bn n|n0 |n0 +-abcbb-FA3:FA3: 一个一个 FAFA,若存在一条从某开始状态,若存在一条从某开始状态 i i 到某结束到某结束状态状态 j j 的通路,且这条通路上所有边的标记连成的的通路,且这条通路上所有边的标记连成的符号串为符号串为 ,则,则 就是一个句子;就是一个句子;所有这样的所有这样的 的集的集合,就是该合,就是该 FA FA 表示的语言表示的语言。【图符说明图符说明】:【运行机制运行机制】:( 表示表示1 1状态遇符号状态遇符号a a变到变到2 2状态状态, ,) );e =e = abab* *c|bc|b* * G(S): S- aA|bB

10、|G(S): S- aA|bB| ,A - bA|A - bA|c c ,B -B - bB| bB| 【例例3.53.5】 L = ab L = abn nc, bc, bn n| n0 ,= a,b,c| n0 ,= a,b,c; 【注注】 凡是能由上述三种方法表示的语言,一定凡是能由上述三种方法表示的语言,一定是是正规语言正规语言;反之,凡是不能由上述三种方法表示;反之,凡是不能由上述三种方法表示的语言,一定的语言,一定不是正规语言不是正规语言。1. 1. 正规文法描述:正规文法描述: 2. 2. 正规式描述正规式描述: :3. 3. 有限自动机描述:有限自动机描述:+-abcbb-FA

11、:FA:表示可接受表示可接受空串空串! 3.2.1 3.2.1 有限自动机的定义有限自动机的定义状态状态 i i 遇符号遇符号 a,a,变换为状态变换为状态 j j :变换(二元函数):变换(二元函数):Q Q( (有限状态集有限状态集); ); i ij ja a或或【定义定义】 有限自动机是一种数学模型,用于描述正有限自动机是一种数学模型,用于描述正规语言规语言, ,可定义为可定义为五元组五元组: (i,a(i,a)=j=j其中:其中:i,jQ, i,jQ, aa+ ;F F( (结束状态集结束状态集, ,F F Q Q ););S S( (开始状态集开始状态集, ,S S Q Q);(

12、(字母表字母表) );【含义含义】FA=( Q,S,F,FA=( Q,S,F, ) )L(FA)L(FA)= x| i= x| i FA FA 存在一条从某初始状态存在一条从某初始状态 i i 到某结束状态到某结束状态 j j 的的连续变换连续变换,且,且每次变换每次变换( (=) )的边标记连成的符号串恰的边标记连成的符号串恰好为好为 x x ;称称x x为为FAFA接受,否则拒绝接受,否则拒绝。 令令 L(FA)L(FA)为自动机为自动机FAFA所描述的正规语言;则所描述的正规语言;则如如 右图有限自动机:右图有限自动机:= x x+-abcbb-设设 x=ax=a1 1 a a2 2a

13、an n , a ai i+ a a1 1=i i1 1i ia a2 2=i i2 2a an n=j j则有则有即:即:含义是含义是: :j , j , xx* * , ,iS,jF iS,jF 则则 L(FA)L(FA)的的识别识别过程如下所过程如下所示:示:+-abcbb-.第一条通路:第一条通路:FA1FA1=b b+ + +=a a =b b=c c+ +=a a =b b =b b=c c.第二条通路:第二条通路:FA2FA2+ += =a a =c c+ +=b b =b b+ + L(FA)=ab L(FA)=abn nc, bc, bn n| n0 | n0 L(FA1)=

14、 ab L(FA1)= abn nc| n0 c| n0 L(FA2)= b L(FA2)= bn n| n0 | n0 因而因而接受空串的接受空串的 FAFA的典型特征!的典型特征!【例例3.63.6】有限自动机有限自动机 :FA=( Q,S,F,FA=( Q,S,F, ) ) 其中其中: : Q Q=1,2,3,4,=1,2,3,4,=a,b,c, =a,b,c, S S=1,2, =1,2, F F=3=3,44 FAFA 的两种表现形式:的两种表现形式: 状态图状态图: : :(1,a)=2;(1,b)=4(1,a)=2;(1,b)=4;(2,b)=2(2,b)=2; (2,c)=3(

15、2,c)=3;(2,(2, )=3)=3;(4,b)=4(4,b)=4; 变换表变换表: : 变换表结构变换表结构:行行( (状态状态),),列列( (符号符号),),表项表项( (变换后状态变换后状态) ) +-abcb bb b- + +4332421 12 23 34 4a ab bc c + +- - -+ +开始状态开始状态结束状态结束状态a ab b【例例3.73.7】 A= ab A= abn nc,(ab)c,(ab)n n|n0 |n0 或或:变换函数不单值,如:变换函数不单值,如一一:开始状态不唯一:开始状态不唯一, ,不好用不好用! !( ( (1,a)=(2|4) ),

16、(1,a)=(2|4) ),也不好用!也不好用!方法一方法一:联合式联合式方法二方法二:组合式组合式1 1比较:比较:二二:带有:带有 边,还是不好用边,还是不好用! !有好用的吗有好用的吗?!?!FAFA的构造:的构造:+ab bc-+ -+ -ab b+ -+ -ab b+ab bc-或或+ab bc-【例例3.73.7】构造正规语言构造正规语言+ab bc-a ab ba a- A=ab A=abn nc,(ab)c,(ab)n n|n0 |n0 +ab bb b-b bcb b-aa-ccDFA:DFA: 确定的有确定的有限自动机如右图限自动机如右图所示:所示:方法三方法三:确定式确定

17、式+ab bb b-b bcb b-aa-ccDFA:DFA: 确定的有限自动机确定的有限自动机(DFA)(DFA)特征特征:开始状态唯一:开始状态唯一; ; 变换函数单值;不带变换函数单值;不带 边。边。 非确定的有限自动机非确定的有限自动机(NFA)(NFA) 带有带有 边的边的非确定的有限非确定的有限自动机自动机( ( NFA)NFA) 不带有不带有 边的边的非确定的有限非确定的有限自动机自动机( NFA)( NFA)- - 不能全部具备上述特征者!不能全部具备上述特征者! 3.2.4 3.2.4 有限自动机的分类有限自动机的分类+ab b- b b FA1FA1+ +ab b-b bb

18、 b-【例例3.83.8 】试分别指出下述有限自动机的分类情况:试分别指出下述有限自动机的分类情况:FA2FA2+ab bc- FA3FA3ab bc c-+ +c cc c+ +ab bc c-+ +c cb bFA5FA5结论:结论:DFADFA: FA2: FA2NFANFA: FA4,FA5: FA4,FA5FA1,FA3 (FA1,FA3 ( NFA)NFA)FA4FA4( NFA)( NFA) 【习题习题3.13.1】解释下列词语:解释下列词语: 正规文法,正规语言,有限自动机;正规文法,正规语言,有限自动机; 确定的有限自动机,非确定的有限自动机。确定的有限自动机,非确定的有限自

19、动机。【习题习题3.23.2】P64_7P64_7【习题习题3.33.3】P64_9P64_9【习题习题3.43.4】给定正规语言,构造有限自动机:给定正规语言,构造有限自动机: 无符号整数无符号整数 (正规式为(正规式为 e=dde=dd* *) 标识符集标识符集( (正规式为正规式为 e= e= ( (|d)|d)* * ) ) A= a A= an n,ba,ban n |n0 |n0 L(a)=aL(a)=a L(a|b)=L(a)+L(b)=a,bL(a|b)=L(a)+L(b)=a,b L(a.b)=L(a).L(b)=a.b=abL(a.b)=L(a).L(b)=a.b=ab L(a(a|b)c )=L(a).L(a|b).L(c)L(a(a|b)c )=L(a).L(a|b).L(c) =a.a,b.c=aac,abc =a.a,b.c=aac,abc5. L(b5. L(b* *)=(L(b)=(L(b)* *=b=b* *=,b,bb,bbb,=,b,bb,bbb, = b = bn n |n

温馨提示

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

评论

0/150

提交评论