文章目录
1. 词法分析器概述
-
词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。
-
词法分析器(Lexical Analyzer) 又称扫描器(Scanner):执行词法分析的程序
- 手工构造方法
- 自动构造方法
-
词法分析器的功能和输出形式
功能:输入源程序、输出单词符号
-
词法分析器输出的单词符号的表示形式:
(单词种别,单词符号的属性值)
5. 实现方案:基本上为两种
2. 词法分析器的手工实现
2.1 输入、预处理
2.3 单词符号的识别:超前搜索
超前搜索是在单词识别的过程中,通过向前多读几个符号的形式,准确的进行单词的识别,一旦确定识别到的单词之后,需要进行扫描指针的回退,保证单词识别工作的顺利进行
2.4 状态转换圈
3. 正规式与有限自动机
将转换图概念略微形式化
两个目的:
- 使用状态转换图构造词法分析程序
- 讨论词法分析程序的自动生成
3.1 正规式与正规集
3.2 确定有限自动机(DFA)
对状态图进行形式化,则可以下定义:
3.3 非确定有限自动机(DFA)
DFA是NFA的特例
- 定义:对于任何两个有限自动机M和M’,如果L(M)=L(M’),则称M与M’等价。
- 自动机理论中一个重要的结论:判定两个自动机等价性的算法是存在的。
- 对于每个NFA M存在一个DFA M’,使得 L(M)=L(M’)。亦即DFA与NFA描述能力相同。
- 确定化过程:
3.4 确定有限自动机的化简
3.5 正规式与有限自动机的等价性
3.6 正规文法与有限自动机的等价性