- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理词法2[NFA、DFA的确定化和化简]
第 3 讲;第二章《词法分析》2.3-2.5节
2.3 正规表达式与有限自动机简介
2.4 正规表达式到优先自动机的构造
2.5 词法分析器的自动生成
重点掌握
有限自动机理论
有限自动机的构造、确定化和化简;第二章 词法分析;2.3.2:有限自动机:可以自动识别单词的机器
有限自动机(Finite Automation):
FA是一个状态转换图,“有限”指的是状态有限。当前状态读入一个字符后,和后继状态的转换有以下三种情形:
(1)后继状态为自身
(2)后继状态只有一个
(3)后继状态有多个
如果每次转换的后继状态是唯一的,则称它为确定有限自动机(Deterministic FA)
如果每次转换的后继状态不是唯一的,则称它为非确定有限自动机(Nondeterministic FA);2.3.2:有限自动机
1、确定有限自动机(DFA):
DFA是一个五元组,Md= (S, ∑, f, s0 , Z) ,其中:
(1) S是一个有限状态集合,它的每个元素称为一个状态
(2) ∑是一个有穷字母表,它的每个元素称为一个输入字符
f是一个从S×∑至S的单值映射,也叫状态转移函数
s0∈S 是唯一的初态
是一个终态集
;2.3.2:有限自动机
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:有限自动机
2、非确定有限自动机(NFA):
NFA是一个五元组,Md= (S, ∑, f, Q, Z) ,其中:
(1) S是一个有限状态集合,它的每个元素称为一个状态
(2) ∑是一个有穷字母表,它的每个元素称为一个输入字符
(3) f是一个从S×∑*至S的多值映射,也叫状态转移函数
(4) Q∈S 是非空初态集
(5) 是一个终态集
NFA相比于DFA的特征:
若干个初始状态 (2) f多值映射
(3) 允许接收字和空字符ε
;2.3.2:有限自动机
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.2:有限自动机(识别的语言)
对于一个自动机FA 而言,如果存在一条从初始状态到终止状态的通路,通路上有向边所识别的字符依次连接所得到的字符串为α, 则称α可以为FA 所接受或者α为FA 所识别
FA 所能识别的字符串集为FA 所识别的语言,记为L(M)
FA的等价:对于任意两个FA M和 FA M’, 如果L(M)=L(M’), 则称M和M’等价
对于任意一个NFA M,一定存在一个DFA M’与其等价 ;2.3 课堂例题;第二章 词法分析;需要了解的等价性:
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.1:由正规式构造等价的NFA
1、对于给定的正规式R,将其表示成
称为“拓广转换图”其中X为初始状态,Y为终止状态
2、对正规式中的三种运算,分别采用如下的对应转换规则
;2.4 正规表达式到有限自动机的构造;2.4.2:NFA的确定化(相关概念)
NFA的确定化:构造一个和NFA等价的DFA
状态集合I的ε_闭包
设I是FA M的状态子集,则以下状态属于ε_CLOSURE(I) :
(1) 若si∈I,则si∈ ε_CLOSURE(I) ;
(2) 若si∈I,则对从si出发经过任意条ε通路所能到达的
状态sj,都
文档评论(0)