编译-第3章-词法分析
3.1 词法分析的功能
◆ 词法分析:根据词法规则识别及组合单词,进行词法检查。
◆ 对数字常数完成数字字符串到数值的转换。
◆ 删去空格字符和注解。
1 | def say_hello(): |
实现方案
- 词法分析单独作为一遍:先词法分析,分析完成后进行语法分析
- 词法分析单独作为语法分析的子程序,效率高
- 语法分析器(Parser)需要新词法单元时调用词法分析器
- 词法分析器返回下一个识别出的词法单元(类型+值)
- 语法分析器根据词法单元类型构建语法树
3.2 单词的种类及词法分析程序的输出形式
**单词的种类:**保留字;标识符:函数名等用户自定义;常数;分界符
单词的内部形式
- key(type, value)
- 常用分类:
- 按照单词种类
- 保留字和分界符按照一符一类(更常见)
3.3 正则文法和状态图(左线形文法)
A → Ba(左线性)
- G中的非终结符都是一个状态(识别符号为终止状态,两个圈)
- 设置一个开始状态S
- 若Q→t, S → Q
- 若Q→Rt, R → Q

六条规则,六条边
状态图可分析和识别字符串x,是规约的过程(自底向上的),每一步规约的正好是句柄
**句柄:**最左简单短语
3.4 词法分析程序的设计与实现


构造词法分析程序
1. 单词及内部表示
2. 词法分析程序需要引用的公共(全局)变量和过程
3. 词法分析程序算法
词法分析程序的自动生成
略