编译原理——第三章

第三章   词法分析

知识总结:

1、词法分析器的基本知识(任务、构造、基本要求)


2、状态转换图(表示与构造)

示例:


3、正规式与正规集(定义与正规式性质与等价性)

正规式等价性:若两个正规式U,V所表示的正规集相同,则两者等价

4、有限自动机(DFA与NFA)

DFA定义:一个确定有限自动机(DFA)M是一个五元式:M = (S, ∑, f, s0, F)

NFA定义 :一个非确定有限自动机(NFA)M是一个五元式M = (S, ∑, f, S0, F)

区别:

DFA:f是从 S×∑ →S的单值部分映射

NFA:f是从S×∑*→2S 的部分映射,其中,2S表示S的幂集合(所有S的子集组成的集合)(f是非单值的->M是非确定)

扫描二维码关注公众号,回复: 2821052 查看本文章

状态集合

表示:矩阵表示与状态图表示

***5、正规表达式与有限自动机

等价性:

定理1:对于任何∑上NFA M都可构造一个∑上的正规式V,使得  L(V) = L(M) 

其中,L(M)是∑上NFA M所能识别的字的全体L(V)是∑上的正规集

由NFA M构造正规表达式V

方法:
(1)在M转换图上加进X结点和Y结点,从X结点用弧ε连接M的所有初态结点,M的所有终态结点用弧ε连接到Y,得到一个NFA M’,且L(M) = L(M’)

(2)使用替换规则逐步消去M’的所有结点,直到只剩下X结点和Y结点,在消去过程中,逐步使用正规式来标记箭弧


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

由正规式V构造DFA M(***重点***)

方法:

1.根据V,构造一个NFA M’,使得L(M’) = L(V)

       (利用替换规则)

2.将M’确定化,变为DFA M

       (涉及到两个定义)

     

      

        3.化简DFA M

        

知识应用:









                                                                  

应用:正规式转换DFA

第一步:构造正规式相应的NFA  M’,得到状态转换图


第二步:利用子集法将M’确定化


(J集合变化过程)


第三步:把每个子集看成一个状态,得到一个DFA M


第四步:用状态转换图表示


第五步:化简DFA




总结:

     这一章学习起来感觉内容有些晦涩难懂,很多知识不理解,都是通过看例题才能明白说的什么。我认为这一章最重点的一部分是由正规式构造DFA,步骤繁琐,理解后真正做起来并不是很难,但是需要很仔细。总之还是需要多练习巩固知识。

猜你喜欢

转载自blog.csdn.net/qq_34149526/article/details/79814295
今日推荐