编译原理词法2(NFA、DFA的确定化和化简).ppt
《编译原理词法2(NFA、DFA的确定化和化简).ppt》由会员分享,可在线阅读,更多相关《编译原理词法2(NFA、DFA的确定化和化简).ppt(28页珍藏版)》请在三一办公上搜索。
1、第 3 讲,编译原理,西北农林科技大学本科教程,主讲教师:赵建邦,第二章词法分析节2.3 正规表达式与有限自动机简介2.4 正规表达式到优先自动机的构造2.5 词法分析器的自动生成重点掌握 有限自动机理论有限自动机的构造、确定化和化简,本讲目标,第二章 词法分析,2.1 词法分析的设计方法2.2 一个简单的词法分析器2.3 正规表达式与有限自动机简介2.4 正规表达式到有限自动机的构造2.5 词法分析器的自动生成,:有限自动机:可以自动识别单词的机器有限自动机(Finite Automation):FA是一个状态转换图,“有限”指的是状态有限。当前状态读入一个字符后,和后继状态的转换有以下三种
2、情形:(1)后继状态为自身(2)后继状态只有一个(3)后继状态有多个如果每次转换的后继状态是唯一的,则称它为确定有限自动机(Deterministic FA)如果每次转换的后继状态不是唯一的,则称它为非确定有限自动机(Nondeterministic FA),2.3 正规表达式与优先自动机简介,:有限自动机1、确定有限自动机(DFA):DFA是一个五元组,Md(S,f,s0,Z),其中:(1)S是一个有限状态集合,它的每个元素称为一个状态(2)是一个有穷字母表,它的每个元素称为一个输入字符f是一个从S至S的单值映射,也叫状态转移函数s0S 是唯一的初态 是一个终态集,2.3 正规表达式与优先自
3、动机简介,:有限自动机1、确定有限自动机(例2.4):假定DFA Md=(s0,s1,s2,a,b,f,s0,s2),状态转移函数:f(s0,a)=s1 f(s0,b)=s2 f(s1,a)=s1 f(s1,b)=s2 f(s2,a)=s2 f(s2,b)=s1,2.3 正规表达式与优先自动机简介,状态转换矩阵:,:有限自动机2、非确定有限自动机(NFA):NFA是一个五元组,Md(S,f,Q,Z),其中:(1)S是一个有限状态集合,它的每个元素称为一个状态(2)是一个有穷字母表,它的每个元素称为一个输入字符(3)f是一个从S*至S的多值映射,也叫状态转移函数(4)QS 是非空初态集(5)是一
4、个终态集NFA相比于DFA的特征:若干个初始状态(2)f多值映射(3)允许接收字和空字符,2.3 正规表达式与优先自动机简介,:有限自动机2、非确定有限自动机(例2.5):假定NFA Mn=(s0,s1,s2,a,b,f,s0,s2,s2),状态转移函数:f(s0,a)=s2 f(s0,b)=s0,s2 f(s1,a)=f(s1,b)=s2 f(s2,a)=f(s2,b)=s1,2.3 正规表达式与优先自动机简介,状态转换矩阵:,:有限自动机(识别的语言)对于一个自动机FA 而言,如果存在一条从初始状态到终止状态的通路,通路上有向边所识别的字符依次连接所得到的字符串为,则称可以为FA 所接受或
5、者为FA 所识别FA 所能识别的字符串集为FA 所识别的语言,记为L(M)FA的等价:对于任意两个FA M和 FA M,如果L(M)=L(M),则称M和M等价对于任意一个NFA M,一定存在一个DFA M与其等价,2.3 正规表达式与优先自动机简介,2.3 课堂例题,例2.5 接受与正规式(a|b)*abb相同的语言的DFA与NFA:,DFA识别abb aabb abab无论成功或者失败只需要运行一次,NFA识别abb aabb abab无论成功或者失败可能需要运行若干次,第二章 词法分析,2.1 词法分析的设计方法2.2 一个简单的词法分析器2.3 正规表达式与有限自动机简介2.4 正规表达
6、式到有限自动机的构造2.5 词法分析器的自动生成,需要了解的等价性:1.如果R是字母表上的一个正规式,则必然存在一个NFA M,使得L(M)=L(R);2.对于任意一个NFA M,一定存在一个DFA M与其等价,即L(M)=L(M);从正规式开始构造DFA的过程有以下几个步骤:1.由正规式构造NFA;2.由NFA构造与之等价的DFA(确定化)3.DFA的化简,2.4 正规表达式到有限自动机的构造(重点),:由正规式构造等价的NFA1、对于给定的正规式R,将其表示成 称为“拓广转换图”其中X为初始状态,Y为终止状态2、对正规式中的三种运算,分别采用如下的对应转换规则,2.4 正规表达式到有限自动
7、机的构造,Y,X,R,2.4 正规表达式到有限自动机的构造,例2.6 对给定正规表达式 b*(d|ad)(b|ab)+构造其NFA M,X,按照正规式从左到右构造NFA:,解答 先用R+=RR*改造正规表达式,b*(d|ad)(b|ab)+=b*(d|ad)(b|ab)(b|ab)*,:NFA的确定化(相关概念)NFA的确定化:构造一个和NFA等价的DFA状态集合I的_闭包设I是FA M的状态子集,则以下状态属于_CLOSURE(I):(1)若siI,则si _CLOSURE(I);(2)若siI,则对从si出发经过任意条通路所能到达的 状态sj,都有sj _CLOSURE(I)。定义Ia=_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 词法 NFA DFA 的确
链接地址:https://www.31ppt.com/p-6056772.html