第三章 词法分析

1.词法分析器

(1)关键字 :是由程序语言定义的具有固定意义的标识符。

(2)标识符:表示各种名字。

(3)常数:一般有整型,实型,布尔型,文字性。

(4)运算符

(5)界符

2.词法分析器的设计

(1)输入,预处理(2)单词符号的识别:超前搜索。(关键字识别,标识符识别,常数的识别,算符和界符的识别)

(3)状态转换图

1.转换图是一张有限方向图 ,其中节点代表状态,用圆圈表示,状态之间用箭弧链连接。一张转换图包含有限个状态(即有限个结点),其中有一个被认为是初态,有一个是终态(用双圆圈表示)。

2.一个状态装换图可用于识别一定的字符串。 

3.正规表达式与有限自动机  

   程序语言的描述(词法规则,正规表达式,有限自动机,词法分析程序)                              

1.正规式与正规集的递归定义

   (1)ε和φ是∑上的正规式,它们所表示的正规集分别为{ε}和φ
   (2)任何a∈∑,是∑上的一个正规式,他所表示的正规集为{ a }
   (3)假定U和V都是∑上的正规式,他们所表示的正规集分别记为L(U)和L(V),那么
(a) (U|V)是正规式,所表示的正规集为L(U)∪L(V)
(b) (UV)是正规式,所表示的正规集为L(U) · L(V)(连接积)
(c) (U)*是正规式,所表示的正规集为 (L(U))*(闭包)

仅由有限次使用(1)(2)(3)所得到的表达式才是∑上的正规式,仅由这些正规式所表示的字集才是∑上的正规集。  

2.正规集的关系

        设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

3.确定有限自动机(DFA)

(1)S是一个有限的状态集合,它的每个元素我们称为一个状态。
(2)∑是一个有穷的输入符号的字母表,它的每个元素我们称为一个输入字符。
(3)f是从 S×∑ →S的单值部分映射。
(4)s0是S的一个元素,为初始状态,它是唯一的。
(5)状态集合F是终止状态的集合,它是S的子集(可空)。 

一个确定有限自动机(DFA)M是一个五元式(S, ∑, δ, s0, F).

DFA M识别功能:对于∑*中任何字α,如果存在一条从初态结点到某个终态结点的道路,这条路上所有的标识符连成的字等于α ,则α可被DFA M所识别(接受,读出)。

4.非确定有限自动机

一个非确定有限自动机(NFA)M是一个五元式(S, ∑, δ, s0, F).

(1)S是一个有限的状态集合,它的每个元素我们称为一个状态。
(2)∑是一个有限的输入符号的字母表,它的每个元素我们称为一个输入字符。
(3)f是从S×∑*→2S 的部分映射,其中,2S表示S的幂集合(所有S的子集组成的集合)(f是非单值的M是非确定)。
(4)状态集合S0是初始状态集合,它是S的子集。

(5)状态集合F是终止状态的集合,它是S的子集。

5.正规式与有限自动机的等价性。

(1)定理1:对于任何∑上NFA M都可构造一个∑上的正规式V,使得  L(V) = L(M) 。其中,L(M)是∑上NFA M所能识别的字的全体L(V)是∑上的正规集。

(2)定理2. 对于∑上的每一个正规式V,存在一个∑上的DFA M,使得L(M) = L(V)。 

6.确定有限自动机的化

(1)化简的概念
寻找一个状态比DFA M少的DFA M’,使得

L(M’) = L(M)

(2)化简DFA的一般步骤

         (1) 检查状态转换函数是否为全函数。

所谓全函数,是指每个状态对每个输入符号都有转换
若不是全函数,可以引入一个“死状态”d,d对所有输入符号都转换到d,如果状态s对输入符号a没有转换,那么加上从s到d的a转换。
        (2) 用化简算法进行化简

        (3) 去掉死状态

知识应用




三。感悟

  而且本章重点正规式与自动机,以及有限自动机的化简。本章知识总体来说不是非常困难,但是也不是很容易理解。对于一些题目应用来说需要的是细心细心再细心,如上面的题目我就在一个小地方错了两三遍,才得出结果。以后对于本章的题目需要看准题目,仔细一步一步走。




                  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值