文档介绍:第4章词法分析
(词法分析的主要任务是对源程序进行扫描,从中识别出单词,它是编译过程的第一步,也是编译过程中不可缺少的部分。本章介绍词法分析程序的手工构造和自动构造原理)
Compiler
2010年9月
湖北大学数计学院计科系
词法分析器与单词符号
扫描程序的设计
标识符的处理
设计词法分析程序的直接方法
小结
2010年9月
湖北大学数计学院计科系
词法分析器与单词符号
编译程序中完成词法分析任务的程序段,称为词法分析器。词法分析器负责对源程序进行扫描,从中识别出一个个的单词符号,因此,词法分析器又称为扫描器。
2010年9月
湖北大学数计学院计科系
词法分析程序的功能及实现方案
词法分析程序的功能
词法分析:根据词法规则识别及组合单词,进行词法检查。
对数字常数完成数字字符串到(二进制)数值的转换。
删去空格字符和注解。
2010年9月
湖北大学数计学院计科系
实现方案:基本上有两种
优点: 结构清晰、各遍功能单一
缺点:效率低
.(字符串)
词法分析
.(符号串)
语法分析
第一遍
第二遍
单词串
.(字符串)
词法分
析程序
语法分
析程序
取单词
单词
2010年9月
湖北大学数计学院计科系
单词的种类及词法分析程序的输出形式
单词的种类
1. 关键字:if、then、else、while、do等
2. 标识符:表示变量名、过程名等
3. 常数:无符号数、布尔常数、字符串常数等
4. 运算符:+、-、*、/ 等
5. 分界符:逗号、分号、括号等
单词符号是程序设计语言的基本语法单位和最小语义单位。
2010年9月
湖北大学数计学院计科系
词法分析程序的输出形式-----单词的内部形式
几种常用的单词内部形式:
1、按单词种类分类
2、关键字、运算符和分界符采用一符一类
3、标识符和常数的单词值又为指示字(指针值)
单词类别单词自身值
2010年9月
湖北大学数计学院计科系
单词名称
标识符
无符号常数(整)
无符号浮点数
布尔常数
字符串常数
保留字
分界符
类别编码
1
2
3
4
5
6
7
单词值
内部字符串
整数值
数值
0 或 1
内部字符串
保留字或内部编码
分界符或内部编码
1、按单词种类分类
2010年9月
湖北大学数计学院计科系
2、关键字、运算符和分界符采用一符一类
单词名称
标识符
无符号常数(整)
无符号浮点数
布尔常数
字符串常数
BEGIN
END
FOR
DO
………
:
+
*
,
(
类别编码
1
2
3
4
5
6
7
8
9
…….
20
21
22
23
…….
单词值
内部字符串
整数值
数值
0 或 1
内部字符串
-
-
-
-
…..
-
-
-
-
--
2010年9月
湖北大学数计学院计科系
扫描程序的设计
预处理
预处理包括删除无用的空格、跳格、回车和换行等编辑性字符以及注解部分。
缓冲区
单词起点
搜索指针
2010年9月
湖北大学数计学院计科系