编译原理第三章词法分析总结

     在上一章中,老师带我们学习了高级语言及其语法的描述,让我们对语法有了一个大体的认识,这一章的学习主要是针对词法的学习。前半部分我将以叙述的形式来总结所学内容以及自己遇到的问题,正规表达式与自动机的部分将以课后习题的形式进行总结。

关于词法分析的几个概念:

词法分析器的任务:从左至右逐个字符的对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为由单词符号串组成的程序。

词法分析器: 执行词法分析的程序
                      输入:源程序
                       输出:单词符号

源程序-词法分析器 -单词符号

单词的表示形式:<单词种别,单词符号的属性值>

词法分析器的结构:


超前搜索:在单词识别的过程中,通过向前多读几个符号的形式,准确的进行单词的识别,一旦确定识别到的单词之后,需要进行扫描指针的回退,保证单词识别工作的顺利进行。

状态转换图:一张有限方向图。

正规集:具有相同特征的字放在一起组成的一个集合

正规式:表示正规集的一种形式化的方法

确定的有限自动机:

一个确定有限自动机(DFAM是一个五元式:

M =(S, ∑, f, s0, F),其中

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

一个非确定有限自动机(NFAM是一个五元式

M =(S, ∑, f, S0, F),其中

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

结合习题讲解部分:

考察题型:将正规式转化成相应的DFA:

1.根据正规式与有限自动机的等价性,将正规式转换成NFA(运用课本图3.7的替换规则进行转换)

2.构造正规式的状态转换表,利用子集法将NFA确定化,得出重命名后的状态转换矩阵,画出DFA.

例题(课后习题7(1))


注意:表格中的序号的排列方式答案不唯一,但是最后得出的图的结构的整体的框架是一样的

考察题型:文字转换成正规表达式

读懂题意,除限制的条件外,其他的元素可以用闭包的方式进行表示(在限定范围内的所有元素)


考察题型:确定有限自动机的化简:

整体思路:将可区别的不同状态进行划分,最后在每个子集内选出代表,进行化简。

1.把s的终态与非终态首先区分。

2.对非终态的子集根据等价的概念进行划分,等价的元素分到一个子集当中(s和t等价的概念:从状态s出发能读出某个字w,并停于终态,同样从t出发也能读出某个字w,并停于终态,则s.t等价)。

3.划分结束,每组内选出一个状态,选出的这个状态将会把分组中其他状态的弧都导入到自己身上,完成最小化。

例题:(课后习题12(b))

注意:划分的过程一定要细致,找出状态之间的规律,会容易很多。

一点感悟:

      明显感觉句法分析相对于上一章的学习难度大了很多,老师也特意放慢了进度,但是我感觉上课听课只是学习的一部分,课下自己的钻研,才能够使印象更加的深刻。就比如说这个NFA的确定化,课本上的思路就非常的明确,看课本完全能够掌握,以上提到的三种类型的题,我已能够掌握,有一点疑惑的是图3.10的替换规则和图3.12的状态转换图是怎么转换的,还有正规文法与有限自动机的等价性以及正规式和有限自动机的等价性的证明理解的不是很透彻,只会根据例题做题,原理记不太住。总而言之,我觉得自己课本还是看的少,以后会在原理方面多下功夫,毕竟编译原理这门课是十分注重基础的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值