编译原理第三章总结

编译原理第三章(词法分析)学习总结
  程序语言的单词符号一般分为以下五种:
   关键字,标识符,常熟。运算符,界符。
 输入缓冲区、预处理子程序



(1)输入源程序文本,放入输入缓冲区中,词法分析工作可在这个输入缓冲区中工作


(2)剔除无用的空白,跳格(TAB),回车,换行等编辑性字符;若空白符号为单词符号的界符,就将若干空白和并为1个


(3)剔除注释行


(4)源程序的出错列表打印


(5)将预处理好的子程序放到扫描缓冲区中
扫描缓冲区、扫描器


(1)扫描缓冲区
设两个半区,可互补使用






设两个指针
起点指针:指出正在识别单词起点位置
搜索指针:向前搜索以寻找单词终点


(2)扫描器:扫描缓冲区,直接进行单词的识别
状态转换图法


(3)状态转换图的结构

   ①结点:代表状态,用圆圈表示

   ②箭弧:状态之间用箭弧连接

   ③箭弧上的标记:代表在射出节点下可能出现的字符或字符串
这节的重点就是正规表达式和有限自动机


首先有正规式和正规集的概念
若两个正规式U和V所表示的正规集相同,则认为二者等价,记为:U = V
确定的有限自动机(DFA)(Deterministic Finite Automata)


非确定的有限自动机(NFA)
(Non-deterministic Finite Automata)


自动机不是指一台实际的机器,而是一种数学模型(集合,函数,序列等),利用它模拟计算机识别的功能。


所谓确定性是指,f(s, a) = s’ 是单值函数。 对任何状态s∈S,和输入符号 a∈∑ , 
f(s, a) 唯一的确定下一个状态
所谓有限性是指,S是一个有限的状态集合,
并且∑是一个有限的输入符号的字母表
用上述5条,来定义一个DFA,来完成识别一个序列是否被机器所接受
正规式与有限自动机的等价性


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


 
图片展示了部分课后题。


    本章主要学习了词法分析器的要求,词法分析器的设计,状态转换图的实现,重点是正规式与有限自动机,和他们之间的相互转化。
而状态等价的概念是两个状态都能够在读出某个字而到停在状态。
DFA就是要将状态集进行分割,分割一些不相交的子集,并进行消去。本章的内容我感觉比较抽象,不是很好理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值