编译原理 第四章 学习笔记1

FA—有穷自动机—Finite Automata
NFA—不确定的有穷自动机—Nondeterministic Finite Automata
DFA—确定的有穷自动机—Deterministic Finite Automata

1、NFA的确定化
编译原理 第四章 学习笔记1_第1张图片

DFA a b F
[x51] [513] [514]
[513] [51326y] [514]
[514] [513] [51426y]
[51326y] [51326y] [5146y] 1
[51426y] [5136y] [51426y] 1
[5146y] [5136y] [51426y] 1
[5136y] [51326y] [5146y] 1
DFA a b F
0 1 2
1 3 2
2 1 4
3 3 5 1
4 6 4 1
5 6 4 1
6 3 5 1

编译原理 第四章 学习笔记1_第2张图片
2、FA与正则文法的关系
定理1:对任意的正则文法G=( VN, VT, P, S),都存在一个有穷自动机A,使得L(A)=L(G)
定理2:对任一DFA(或NFA),都存在一个正则文法G,使L(G)=L(A)
具体步骤:
(1)对于 A->a的产生式,按归约理解,句子中的第1个字符,都是用A->a的产生式进行归约的.对应到FA中,FA从开始状态出发,读到句子的第一个字符a,将它归约为A。此时引入初态 q, 定义为:f(q,a)=A.
(2)对于 A->Ba的产生式,FA应该在状态B读入 a,其状态转为A , 即 f(B,a)=A. 也可理解为在状态B时,FA已将当前句子处理过的前缀归约成了B,此时它读入 a时,要将Ba归约为A。
(3)按归约来说,如果一个输入串是文法G产生语言的合法句子,它最终应该被归约成开始符号。所以G的开始符号就是FA M的终止状态。
【EG】构造下述文法G[S]的自动机:
S—>A0 (1)
A—>A0 | S1 | 0 (2)
该自动机是确定的吗?若不确定,则对它确定化。该自动机相应的语言是什么?编译原理 第四章 学习笔记1_第3张图片

NFA 0 1 F
q A
A AS
S A 1
DFA 0 1 F
[q]-1 [A]-2
[A]-2 [AS]-3
[AS]-3 [AS]-3 [A]-2 1

编译原理 第四章 学习笔记1_第4张图片
该自动机的不是确定的,相应的语言是:00(0|10)*

3、正则式与FA的等价性
【EG】已知L(G)={x | x 属于{0,1}* ,且不含两个相邻的1}, 求文法G。
编译原理 第四章 学习笔记1_第5张图片
画出对应的FA,可知文法为:
S—>0S | 1A | 空
A—>0S | 空

两个定理:
(1)对于上的NFA M,可构造一个上的正则式r,使L®=L(M);
(2)对于上的每个正则式r,可构造上的NFA M,使L(M)=L®。

【EG】已知FA,求正则式
编译原理 第四章 学习笔记1_第6张图片
正则式:(a | b | c (a|b)* d)*

【EG】已知FA,求正则式。
编译原理 第四章 学习笔记1_第7张图片
正则式:0(0 | 10)*0
简单的解释一下:S->A和A->B的是两个不可省略的过程,也就是我们写出正则式前后的两个0,所以所有的文章都出在A上面,所以我们只需要看A要经历哪些状态再次回到A,才能保证S顺利的到达B。A可以一直0循环,也可以先到S再回来并且不断循环,所以(0|10) *。由此我们可以确定正则式。

4、正则式构造等价NFA
【EG】已知正则式r=b*(d|ad)(b|ad)+构造等价的NFA M。
编译原理 第四章 学习笔记1_第8张图片
【EG】已知正则式r= 1 (01) * (0* | 1* ) 0 ,构造等价的NFA M。
编译原理 第四章 学习笔记1_第9张图片
5、DFA的化简(DFA最小化)
1.化简的FA:是指没有多余状态且状态中没有两个是互相等价的。
2.多余状态:从DFA的开始状态出发,任何输入串也不能到达的那个状态。
3.在DFA中,状态s和t状态等价的条件是:
(1)一致性条件——s和t必须同时为可接受态或不可接受态。
(2)蔓延性条件——对于所有输入符号, s和t必须转换到等价的状态集里。
如果DFA的状态s和t不等价,则称s和t是可区分的。

【EG】将下图所示的DFA M最小化。
编译原理 第四章 学习笔记1_第10张图片

a b F
1 6 3
2 7 3
3 1 5
4 4 6
5 7 3 1
6 4 1 1
7 4 2 1

接下来划分集合
P=({1,2,3,4},{5,6,7})=({1,2},{3,4},{5},{6,7})=({1,2},{3},{4},{5},{6,7})
1、2相同,6、7相同
编译原理 第四章 学习笔记1_第11张图片
【EG】把图确定化、最小化
编译原理 第四章 学习笔记1_第12张图片

DFA a b F
0 1 2 1
1 1 4
2 1 3
3 3 2
4 0 5
5 5 4

P=({0},{1,2,3,4,5})=({0},{4},{1,2,3,5})=({0},{4},{1,5},{2},{3})
所以1和5是等价的
编译原理 第四章 学习笔记1_第13张图片

你可能感兴趣的:(编译原理)