编译原理词法2(NFA、DFA的确定化和化简)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

f(s1, a) = s1 f(s2, b) = s1
状态转换图:
a s0
b
b
a s1
b s2
a
状态转换矩阵:

f
ab
s0 S s1
s2
s1 s2 s1 s2 s2 s1
2.3 正规表达式与优先自动机简介
2.3.2:有限自动机
– 2、非确定有限自动机(NFA):
• NFA是一个五元组,Md= (S, ∑, f, Q, Z) ,其中:
(1) S是一个有限状态集合,它的每个元素称为一个状态 (2) ∑是一个有穷字母表,它的每个元素称为一个输入字符
(3) f是一个从S×∑*至S的多值映射,也叫状态转移函数
(4) Q∈S 是非空初态集
(5) Z S 是一个终态集
• NFA相比于DFA的特征:
(1)若干个初始状态
(2) f多值映射
(3) 允许接收字和空字符ε
2.3 正规表达式与优先自动机简介
2.3.2:有限自动机
– 1、确定有限自动机(例2.4):
假定DFA Md =({s0, s1, s2},{a,b}, f , s0 ,{s2} ),状态转移函数:
f(s0, a) = s1 f(s1, b) = s2
f(s0, b) = s2 f(s2, a) = s2
r2
si
sk
sj
ε
源自文库
si
sk
ε sj
r1
2.4 正规表达式到有限自动机的构造 例2.6 对给定正规表达式 b*(d|ad)(b|ab)+ 构造其NFA M [解答] 先用R+=RR*改造正规表达式
b*(d|ad)(b|ab)+ = b*(d|ad)(b|ab)(b|ab)* 按照正规式从左到右构造NFA:
2.3 正规表达式与优先自动机简介
2.3.2:有限自动机:可以自动识别单词的机器 – 有限自动机(Finite Automation): • FA是一个状态转换图,“有限”指的是状态有限。当前状 态读入一个字符后,和后继状态的转换有以下三种情形: (1)后继状态为自身 (2)后继状态只有一个 (3)后继状态有多个 • 如果每次转换的后继状态是唯一的,则称它为确定有限自 动机(Deterministic FA) • 如果每次转换的后继状态不是唯一的,则称它为非确定有 限自动机(Nondeterministic FA)
f(s1, b) ={s2 } f(s2, a) = Ф
f(s2, b) ={ s1 }
状态转换图: b
s0 bb
a
s1 b
s2
状态转换矩阵:

f
a
b
s0 {s2} {s0,s2} S s1 Ф {s2}
s2 Ф {s1}
2.3 正规表达式与优先自动机简介
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.4 正规表达式到有限自动机的构造(重点) 需要了解的等价性:
– 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的化简
西北农林科技大学本科教程
第3 讲
主讲教师:赵建邦
本讲目标
第二章《词法分析》2.3-2.5节 2.3 正规表达式与有限自动机简介 2.4 正规表达式到优先自动机的构造 2.5 词法分析器的自动生成
重点掌握 有限自动机理论 有限自动机的构造、确定化和化简
第二章 词法分析
2.1 词法分析的设计方法 2.2 一个简单的词法分析器 2.3 正规表达式与有限自动机简介 2.4 正规表达式到有限自动机的构造 2.5 词法分析器的自动生成
2.3 正规表达式与优先自动机简介
2.3.2:有限自动机 – 1、确定有限自动机(DFA): • DFA是一个五元组,Md= (S, ∑, f, s0 , Z) ,其中: (1) S是一个有限状态集合,它的每个元素称为一个状态 (2) ∑是一个有穷字母表,它的每个元素称为一个输入字符 (3)f是一个从S×∑至S的单值映射,也叫状态转移函数 (4)s0∈S 是唯一的初态 (5) Z S 是一个终态集
b
d
b
b
ε
ε
X1 2
4
ε
ε
6
8
Y
a
da
b
3
5
ab 7
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,都有sj ∈ ε_CLOSURE(I) 。 – 定义Ia = ε_CLOSURE(J) ,其中: I={s1, s2,…, sn},J = f(I,a) = f(s1,a)∪f(s2,a)∪… ∪ f(sn,a)
2.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) = Ф
2.4 正规表达式到有限自动机的构造
2.4.1:由正规式构造等价的NFA
R
– 1、对于给定的正规式R,将其表示成 X
Y
称为“拓广转换图”其中X为初始状态,Y为终止状态
– 2、对正规式中的三种运算,分别采用如下的对应转换规则
r1|r2
si
sj
r1
si
r2 sj
si r1r2 sj
r1*
si
sj
r1
2.3 课堂例题
例2.5 接受与正规式(a|b) *abb相同的语言的DFA与NFA:
DFA: a
a
s1
b
a
b
s0
a
s2
b
s3
b
NFA:
a
a
a
b
s0
s1
s2
s3
b
第二章 词法分析
2.1 词法分析的设计方法 2.2 一个简单的词法分析器 2.3 正规表达式与有限自动机简介 2.4 正规表达式到有限自动机的构造 2.5 词法分析器的自动生成
相关文档
最新文档