编译原理笔记5 词法分析

来源:互联网 发布:网络流行语的翻译建议 编辑:程序博客网 时间:2024/05/17 07:31

词法分析

1.词法分析是编译的第一个阶段,在单词的级别上分析和翻译源程序。

2.理论基础:有限自动机理论,有限自动机理论与正规文法/正规式之间在描述语言方面有一一对应的关系。

3.正规文法:是Chomsky 3型文法。正规文法是描述正规集的文法,可用于描述程序,设计语言的语法部分。

4.正规集:由正规文法产生的语言。注:正规集是集合,可有穷也可无穷。可通过正规式来形式化表示。

5.正规式:

6.三个概念间的关系:一个正规语言可以用正规文法定义,也可以用正规式定义,对任意一个正规文法,存在一个定义同一个语言的正规式;编译原理笔记5 <wbr>词法分析

同样,对每个正规式,存在一个生成同一语言的正规文法;有些正规语言很容易用文法定义,有些则用正规式定义更容易;两者之间是可以转换的,结构上具有等价性。——由正规文法或正规式定义的语言称为正规集。

7.定理1:若阿尔法,贝塔,伽马是正规式则下述等价式成立。1)阿尔法+贝塔=贝塔+阿尔法2)加法和乘法结合率3)加法和乘法分配率4)空串*阿尔法=阿尔法*空串=阿尔法5)(a**=a*6a*=a    a+ aa* a*a 7

8.定理2:若阿尔法、贝塔、伽马是字母表A上的正规式,且空串不属于伽马的语言,则阿尔法=贝塔 阿尔法*伽马当且仅当阿尔法=贝塔*伽马的星闭包。

9.正规文法转换成相应正规式。步骤:1)有正规文法的各个产生式写出对应的正规方程式,得到联系方程组。2)把方程组中的非终结符当作变元。3)求此正规式方程组的解,得到关于开始符号S的解:S=ww属于VT星闭包,w就是所求正规式。

10.有限自动机:

11.确定有限自动机DFA。定义:确定有限自动机是一个五元式M。——状态转换关系表示:状态转换矩阵,状态转换图。注:用矩阵表示转换便于计算机处理,但不直观,而用状态转换图表示比较直观。

12.每读一个字符,状态就向前进至下一状态;记为:“|-”,注:能被DFA  M所接受的字符串的集合,称为自动机M所能识别的语言,记为LM)。

13.不确定的有限自动机NFA。定义:不确定有限自动机是一个五元式。注:可能有多个初始状态;某个状态通过识别一个符号可以到达不止一个状态。

14.两自动机等价:若两个有限自动机识别的语言相同,则这两个自动机等价。注:存在判定任何两个有限自动机等价性的算法。

15.NFA确定化:对于每个NFA M,存在一个DFA M’,使得LM=LM')。即,设L是一NFA接受的正规集,则存在一个DFA接受L

16.NFA确定化算法:因为都是五元组,因此要把这个五元组一一对应上,考虑他们的区别,除了映射关系,1)将NFA中的所有初态覆盖为一个I。初态。2)从新开始状态出发,列表求出其他一切新状态。3)以状态名中包含原有终止状态名的一切新状态作为新终止状态。4)构造DFA M‘。

17.确定有限自动机的化简(最小化)。1)化简条件:接受的语言必须相同。2)化简(最小化)算法基本思想——划分法。第一.DFA  M中的状态划分为互不相交的子集,每个子集内部的状态都等价;而在不同子集间的状态均不等价。第二.从每个子集中任选一个状态作为代表,消去其他等价状态。第三.把那些原来射入其它等价状态的弧改为摄入相应的代表状态。

18.状态等价:设DFA  M中有两个状态stst等价:(s,w|-*(s1,E)同时(t,w|-*(t1,E),s1,t1都是终态,即如果从状态s出发能读出某个字w而停于终态,从t出发也能读出同样的字w而停止与终态,则称st等价。——st可区别:如果不等价就是可区别

19.化简算法:1)把状态集S划分为终态集和非终态集。因为终态能识别E,而非终态不能,所以它们是可区别的;2)假定经过k次划分后:子集间可区分,子集内还是否可以划分?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


0 0