编译原理第三章总结
编译原理第三章(词法分析)学习总结
程序语言的单词符号一般分为以下五种:
关键字,标识符,常熟。运算符,界符。
输入缓冲区、预处理子程序
(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就是要将状态集进行分割,分割一些不相交的子集,并进行消去。本章的内容我感觉比较抽象,不是很好理解。
程序语言的单词符号一般分为以下五种:
关键字,标识符,常熟。运算符,界符。
输入缓冲区、预处理子程序
(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就是要将状态集进行分割,分割一些不相交的子集,并进行消去。本章的内容我感觉比较抽象,不是很好理解。