词法分析
1.词法分析是编译的第一个阶段,在单词的级别上分析和翻译源程序。
2.理论基础:有限自动机理论,有限自动机理论与正规文法/正规式之间在描述语言方面有一一对应的关系。
3.正规文法:是Chomsky
4.正规集:由正规文法产生的语言。注:正规集是集合,可有穷也可无穷。可通过正规式来形式化表示。
5.正规式:
6.三个概念间的关系:一个正规语言可以用正规文法定义,也可以用正规式定义,对任意一个正规文法,存在一个定义同一个语言的正规式;
同样,对每个正规式,存在一个生成同一语言的正规文法;有些正规语言很容易用文法定义,有些则用正规式定义更容易;两者之间是可以转换的,结构上具有等价性。——由正规文法或正规式定义的语言称为正规集。
7.定理1:若阿尔法,贝塔,伽马是正规式则下述等价式成立。1)阿尔法+贝塔=贝塔+阿尔法2)加法和乘法结合率3)加法和乘法分配率4)空串*阿尔法=阿尔法*空串=阿尔法5)(a*)*=a*6)a*=a+
8.定理2:若阿尔法、贝塔、伽马是字母表A上的正规式,且空串不属于伽马的语言,则阿尔法=贝塔
9.正规文法转换成相应正规式。步骤:1)有正规文法的各个产生式写出对应的正规方程式,得到联系方程组。2)把方程组中的非终结符当作变元。3)求此正规式方程组的解,得到关于开始符号S的解:S=w,w属于VT星闭包,w就是所求正规式。
10.有限自动机:
11.确定有限自动机DFA。定义:确定有限自动机是一个五元式M。——状态转换关系表示:状态转换矩阵,状态转换图。注:用矩阵表示转换便于计算机处理,但不直观,而用状态转换图表示比较直观。
12.每读一个字符,状态就向前进至下一状态;记为:“|-”,注:能被DFA
13.不确定的有限自动机NFA。定义:不确定有限自动机是一个五元式。注:可能有多个初始状态;某个状态通过识别一个符号可以到达不止一个状态。
14.两自动机等价:若两个有限自动机识别的语言相同,则这两个自动机等价。注:存在判定任何两个有限自动机等价性的算法。
15.NFA确定化:对于每个NFA
16.NFA确定化算法:因为都是五元组,因此要把这个五元组一一对应上,考虑他们的区别,除了映射关系,1)将NFA中的所有初态覆盖为一个I。初态。2)从新开始状态出发,列表求出其他一切新状态。3)以状态名中包含原有终止状态名的一切新状态作为新终止状态。4)构造DFA
17.确定有限自动机的化简(最小化)。1)化简条件:接受的语言必须相同。2)化简(最小化)算法基本思想——划分法。第一.将DFA
18.状态等价:设DFA
19.化简算法:1)把状态集S划分为终态集和非终态集。因为终态能识别E,而非终态不能,所以它们是可区别的;2)假定经过k次划分后:子集间可区分,子集内还是否可以划分?