第二章 词法分析确定有限自动机.ppt
《第二章 词法分析确定有限自动机.ppt》由会员分享,可在线阅读,更多相关《第二章 词法分析确定有限自动机.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译程序原理与实现张晶2013.02第2章 outlinep一、词一、词法分析概述法分析概述1 1,词法分析程序的功能,词法分析程序的功能2 2,词法分析相关的一些问题,词法分析相关的一些问题p二、正则表达式二、正则表达式p三、有限自动机三、有限自动机1 1,确定有限自动机,确定有限自动机DFADFA2 2,非确定有限自动机,非确定有限自动机NFANFA,NFANFA到到DFADFA的转换的转换3 3,DFADFA的化简的化简4 4,正则表达式到,正则表达式到NFANFA的转换的转换p四、词法分析程序构造四、词法分析程序构造三、有限自动机正则表达式正则表达式 -specification-sp
2、ecification有限自动机有限自动机 Implementation Implementation什么是有限自动机?什么是有限自动机?有限自动机是描述有限自动机是描述有限状态系统有限状态系统的的数学模型。数学模型。有限状态系统:有限状态系统:状态:是将事物状态:是将事物区分区分开的一种标识开的一种标识.具有离散状态的系统:如数字电路具有离散状态的系统:如数字电路(0,1);(0,1);电灯开关电灯开关(on,off);(on,off);十十字路口的红绿灯;其状态数是有限的。字路口的红绿灯;其状态数是有限的。具有连续状态的系统:水库的水位、室内的温度等可以连续发具有连续状态的系统:水库的水位
3、、室内的温度等可以连续发生变化;可以有无穷个状态生变化;可以有无穷个状态.有限状态系统是离散状态系统有限状态系统是离散状态系统。在很多领域,如网络协议分析、形式验证、代码安全、在很多领域,如网络协议分析、形式验证、代码安全、排版系统等有重要应用。排版系统等有重要应用。有限自动机的例子-经典的过河问题一个人一个人带着一头狼,一头羊,以及一棵白菜处于河带着一头狼,一头羊,以及一棵白菜处于河的左岸。人和他的伴随品都希望渡到河的右岸。有的左岸。人和他的伴随品都希望渡到河的右岸。有一条小船,每摆渡一次,只能携带人和其余三者之一条小船,每摆渡一次,只能携带人和其余三者之一。如果单独留下狼和羊,狼会吃羊;如
4、果单独留一。如果单独留下狼和羊,狼会吃羊;如果单独留下羊和白菜,羊会吃菜。怎样才能渡河,而羊和白下羊和白菜,羊会吃菜。怎样才能渡河,而羊和白菜不会被吃掉呢?菜不会被吃掉呢?过河问题模型化有限自有限自动动机的模型机的模型有限自动机有限自动机FAFA可以理解成状态控制器可以理解成状态控制器FAFA有有限个状态,其中有初始状态,终止状态有有限个状态,其中有初始状态,终止状态起始:处于初始状态,读头位于输入带开头起始:处于初始状态,读头位于输入带开头中间:从左到右依次读取字符,发生状态迁移中间:从左到右依次读取字符,发生状态迁移结束:读头到达输入带末尾,状态到达终态结束:读头到达输入带末尾,状态到达终
5、态10110状态控制器状态控制器读头输入带输入带输出输出有限自动机的五要素有限状态集有限状态集 SSSS有限输入符号集有限输入符号集 转移函数转移函数 (s,a)=t (s,a)=t 一个开始状态一个开始状态s0s0一个终止状态集一个终止状态集 TSTS输入:字符串输入:字符串输出:若输入字符串结束,且到达终止状态,则输出:若输入字符串结束,且到达终止状态,则接接受受,否则,否则拒绝拒绝。例如:例如:“101101”输出拒绝,输出拒绝,“10101010”输出接受。输出接受。1 1、确定有限自动机、确定有限自动机DFADFA确定有限自动机确定有限自动机DFADFA是一个五元组是一个五元组 M=
6、(SS,M=(SS,S,S0 0,TS),TS),nSS SS:有限的状态集合:有限的状态集合 SS0 0,S S1 1,S S2 2,n :有限的输入字符表:有限的输入字符表n :状态转换函数,:状态转换函数,SS SS SS SS 是单值全映射函数;是单值全映射函数;nS S0 0:初始状态,:初始状态,S S0 0 SSSSnTS TS:终止状态集,:终止状态集,TSTS SSSS 例1:DFA M=(0,1,2,3,4,a,b,0,3)其中为:(0,a)=1 (0,a)=1 (0,b)=4(0,b)=4 (1,a)=4 (1,a)=4 (1,b)=2(1,b)=2 (2,a)=3 (2
7、,a)=3 (2,b)=4(2,b)=4 (3,a)=3 (3,a)=3 (3,b)=3(3,b)=3 (4,a)=4 (4,a)=4 (4,b)=4(4,b)=4DFADFA的的两种两种表示形式表示形式n转换表转换表(transition table)(transition table)易于实现易于实现n转换图转换图(transition graph)(transition graph)直观,易于理解直观,易于理解转换表转换表行:行:状态状态列:字符列:字符元素:元素:表示状态转换,表示状态转换,状态状态或或 开开始始状态状态:默:默认认表的第一行表表的第一行表示示开开始始状态状态,或者状态
8、加上角标或者状态加上角标+终终止止状态状态:状态加状态加上上角标角标-a ab b0+0+1 14 41 14 42 23 3-3 33 3转换表转换表例例1 1:DFA M=(0,1,2,3,4,a,b,DFA M=(0,1,2,3,4,a,b,0,3),0,3)其中其中为:为:(0,a)=1 (0,a)=1 (0,b)=4(0,b)=4 (1,a)=4 (1,a)=4 (1,b)=2(1,b)=2 (2,a)=3 (2,a)=3 (2,b)=4(2,b)=4 (3,a)=3 (3,a)=3 (3,b)=3(3,b)=3 (4,a)=4 (4,a)=4 (4,b)=4(4,b)=4a ab
9、b0 0+1 14 41 14 42 22 23 34 43 3-3 33 34 44 44 4转换图转换图状态状态转换边转换边 f(S1,a)=S2f(S1,a)=S2开始状态开始状态终止状态终止状态S0SS aS1S2转换图转换图a ab b0+0+1 14 41 14 42 22 23 34 43 3-3 33 34 44 44 40213abababba4ab转换图转换图a ab b0+0+1 1 1 1 2 22 23 3 3 3-3 33 30213aabbaa ab b0+0+1 11 12 22 23 33 3-3 33 3DFA的例子例2::a,b,c,d SS:S0,S1,
10、S2,S3开始状态开始状态:S0 终止状态集终止状态集:S3f:(S0,a)S1,(S0,c)S2,(S0,d)S3,(S1,b)S1,(S1,d)S2,(S2,a)S3,(S3,c)S3S0aS1S2S3cddabcDFADFA的确定性的确定性形式定义形式定义初始状态唯一:初始状态唯一:S0S0转换函数是单值函数,即对任一状态和输入符号,唯一地确定了下一个状态转换函数是单值函数,即对任一状态和输入符号,唯一地确定了下一个状态转换表转换表初始状态唯一:第一行初始状态唯一:第一行表元素唯一表元素唯一转换图转换图初始状态唯一初始状态唯一:每个状态最多发出每个状态最多发出n n条边,条边,n n是字
11、母表中字母的个数,且发出的任意两条边是字母表中字母的个数,且发出的任意两条边上标的字母都不同上标的字母都不同DFADFA的一些的一些概概念念DFADFA接受的字符串接受的字符串如果如果M M是一个是一个DFA,DFA,a a1 1 a a2 2 a an n 是一个字符串,如果存在一个状态序列是一个字符串,如果存在一个状态序列 (S S0 0,S,S1 1,S,Sn n),),满足满足 S S0 0 S S1 ,1 ,S S1 1 S S2 ,2 ,S Sn-1 n-1 S Sn n其中其中 S S0 0 是开始状态,是开始状态,S Sn n 是接受状态之一,则串是接受状态之一,则串a a1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二章 词法分析确定有限自动机 第二 词法 分析 确定 有限 自动机
限制150内