Skip to content

第六章 词法分析

Giovanna

About 533 wordsAbout 2 min

2024-07-01

一、语言符号的分类

语言的符号通常分为5类:基本字、标识符、常数、运算符、界符

  • 基本字:例如beginifend等语言预定义的具有特定含义的字符串,也称关键字或保留字
  • 标识符:用来作为实体的名字或语句符号,通常是一个以字母开头的字母数字串。
  • 常数:如整数、实数和字符串等。
  • 运算符:如算术运算符,关系运算符,逻辑运算符等。
  • 界符:如, ; : ( )等。

二、词法分析器的输出形式

二元式(符号的种别 符号自身的值)

本课程中:

  • 基本字、运算符、界符一符一种
  • 标识符为一种
  • 常数按类型分种

三、词法分析器的结构

扫描缓冲区:完成预处理后,词法分析器从输入缓冲区输入一个 固定长度的字符串到另一个缓冲区,这个缓冲区称为扫描缓冲区。

双缓冲区结构:设置左右两个缓冲区,当左缓冲区读完后,新读入的字符存入右缓冲区;反之存放在左缓冲区。

image.png

  • 起点指针:指示正在扫描的单词的起点
  • 搜索指针:用于向前搜索,寻找单词的结束

四、符号的识别

  • 基本字:有特定标志,直接识别;允许用作其他用途,则需要向前搜索
  • 标识符:标识符以字母打头,后接字母/数字串,识别时扫描到界符即可
  • 常数:识别出常数后翻译成数值存入常数表
  • 运算符:一个字符的运算符,扫描到该字符即可;多个字符组成的运算符,要将其合成后再确定
  • 界符:单字界符

五、状态转换图

结点:圆圈表示结点,代表状态

有向边:连接结点,边上标记字符表示该状态下可能接收或识别的字符

标识符识别的状态图

image.png