第三章 词法分析
3.1 对于词法分析器的要求
词法分析器的任务:
就是把写好的代码翻译成一个个由单词符号组成的程序。
词法分析器的构造:
- 可以自己编写程序。
- 可以利用工具Lex等
单词符号概念:
指语言中具有独立意义的最小的语法符号。
单词符号的种类:
基本字,标识符,常数,运算符,界符。
单词的表现形式:
<单词种别,单词符号的属性值>
3.2 词法分析器的设计
1.词法分析器的结构:

源程序文本放入输入缓冲区,在缓冲区可以处理空格,回车,换行等编辑性字符,打印出错列表,除去注释行。
最后将处理好的子程序放到扫描缓冲区。
2.单词符的识别
1)超前搜索:通过对多个单词的识别来准确地识别一个单词。
2)直接分析:保留字,数字,变量等可以直接识别
直接分析流程图:

3.3 正规表达式与有限自动机
1.词法分析器的构造的基本思路:
程序语言的描述:
词法规则,正规表达式,有限自动机,词法分析程序。
- 正规式和正规集
我们可以把具有相同特征的字放在一起组成一个集合,即所谓的正规集
然后使用一种形式化的方法来表示正规集,即所谓的正规式
- 有限自动机
定义:一个确定有限自动机(DFA)M是一个五元式:
M = (S, ∑, f, s0, F),其中
1)S是一个有限的状态集合,它的每个元素我们称为一个状态
2)∑是一个有穷的输入符号的字母表,它的每个元素我们称为一个输入字符
3)f是从 S×∑ →S的单值部分映射
4)s0是S的一个元素,为初始状态,它是唯一的
5)状态集合F是终止状态的集合,它是S的子集(可空)