BUAACT-Chap03-词法分析

第三章 词法分析

3.1 词法分析程序的功能及实现方案

3.1.1 词法分析的功能

  • 根据词法规则识别及组合单词,进行词法检查;
  • 对数字常数完成数字字符串到(二进制)数值的转换;
  • 删去空字符和注解。

3.1.2 实现方式

  1. 词法分析单独作为一遍

  1. 词法分析程序作为单独的子程序(一遍扫描)

3.2 单词的种类及词法分析程序的输出形式

单词的种类:

  • 保留字:begin、end、for、do……
  • 标识符
  • 常数:无符号数、布尔常数、字符串常数
  • 分界符:+、-、*、/

词法分析的输出形式指单词的内部形式:

单词类别 单词值
整形 58
保留字 'for'
  • 单词类别:表示单词的种类,可用整数编码或记忆符表示;
  • 单词值:不同的单词有不同的值。

几种常用的单词内部形式:

  1. 按单词种类分类;
  2. 保留字和分界符采用一符一类;
  3. 标识符和常数的单词值可为指示字(指针值)。
方案一、按单词种类分类
单词名称 类别编码 单词值
标识符 1 内部字符串
无符号常数(整) 2 整数值
无符号浮点数 3 数值
布尔常数 4 0 或 1
字符串常数 5 内部字符串
保留字 6 保留字或内部编码
分界符 7 分界符或内部编码
方案二、保留字和分界符采用一符一类
单词名称 类别编码 单词值
标识符 1 内部字符串
无符号常数(整) 2 整数值
无符号浮点数 3 数值
布尔常数 4 0 或 1
字符串常数 5 内部字符串
BEGIN 6
END 7
FOR 8
DO 9
…… …… ……
: 20
+ 21
* 22
, 23
( 24
…… …… ……

3.3 正则文法和状态图

3.3.1 左线性文法状态图的画法

左线性文法状态图的画法
左线性文法状态图的画法
例:一种文法的状态图
例:一种文法的状态图

利用状态图可以分析和识别字符串是否符合文法。

3.4 词法分析程序的设计与实现


BUAACT-Chap03-词法分析
https://onlyar.site/2022/09/12/BUAACT-Chap03/
作者
Only(AR)
发布于
2022年9月12日
许可协议