编译原理第三章总结
一、词法分析:
1.词法分析器:执行词法分析的程序
输入:源程序
输出:单词符号
2.单词符号概念
指语言中具有独立意义的最小的语法符号
例:C = A * 3.14 + 5
3.单词种别
(1)关键字,运算符,界符(2)常数(3)标识符
4.单词符号的识别
(1)超前搜索(2)直接分析法(3)状态转换图法(重点)
5.正规式与正规集
具有相同特征的字放在一起组成一个集合,即所谓的正规集
然后使用一种形式化的方法来表示正规集,即所谓的正规式
注意:正规式是描述单词结构的一种形式;
正规集是该类单词的全集。
正规式的性质:正规式的性质
设U,V,W是上的∑正规式,则
(1) U | V = V | U 或的交换律
(2) U | ( V|W ) = ( U|V ) | W 或的结合律
(3) U ( VW ) = ( UV ) W 连接积的结合律
(4) U ( V | W ) = ( UV ) | ( UW ) 分配律
( V | W ) U = VU | WU
(5) εU = Uε = U
二、确定的有限自动机(DFA)
1.定义:一个确定有限自动机(DFA)M是一个五元式:
M = (S, ∑, f, s0, F)
S是一个有限的状态集合,它的每个元素我们称为一个状态
∑是一个有穷的输入符号的字母表,它的每个元素我们称为一个输入字符
f是从 S×∑ →S的单值部分映射
s0是S的一个元素,为初始状态,它是唯一的
状态集合F是终止状态的集合,它是S的子集(可空)
2.DFA M的表示方法
状态转换矩阵表示法(用一个“表”来表示)
设矩阵的行表示状态,列表示输入字符,矩阵元素是f(s,a)的值
三、非确定的有限自动机(NFA)
1.定义:一个非确定有限自动机(NFA)M是一个五元式
M = (S, ∑, f, S0, F)
2.NFA M表示方法
(1) 用状态矩阵表示
(2) 用状态转换图表示
四、正规式与有限自动机的等价性
1.定理1:对于任何∑上NFA M都可构造一个∑上的正规式V,使得 L(V) = L(M)
2.定理2. 对于∑上的每一个正规式V,存在一个∑上的DFA M,使得L(M) = L(V)
3.化简DFA的一般步骤
(1) 检查状态转换函数是否为全函数。
(2) 用化简算法进行化简
(3) 去掉死状态
五、心得体会:
1.第三章很明显的感觉,比第二张在难度与理解上有了很大的层次感,不论是从一些定义、定理的内容和数量还是做题的步骤上,都有了难度的提升,另外,个人感觉本章的重点在于正规式与有限自动机的等价性,由DFA M、NFA M,和一个正规式V的相互转化,其中DFAM的化简更是繁琐。
2.此外,在做完课后题百度答案的时候,发现里面的一些步骤根课件上大相径庭,这让我有点慌,比如说,在构造状态表的时候,有一个集合根据路径无法到达时,记为“-”,而答案加入了一行“- - - ”,这样其实是课件里省略了这一步,最后的结果还是要去掉死状态的,所以结果是一样的,就是这里被他困住了。
六、课后习题选做