词法分析是编译器工作的第一个阶段
词法分析的主要任务是从左向右逐行扫描源程序的字符,识别出各个单词,确定单词的类型
将识别出的单词转换成统一的机内标识即词法单元(token)形式。
token: < 种别码,属性值 > 大体分为以下五类
单词类型 | 种别 | 种别码 | |
---|---|---|---|
1 | 关键字 | program,if,else,then,… | 一词一码 |
由于关键字是可以事先确定的所以为每一个关键字分配一个种别码即一词一码。
单词类型 | 种别 | 种别码 | |
---|---|---|---|
2 | 标识符 | 变量名,数组名,记录名,过程名,… | 多词一码 |
由于标识符由程序员所定义所以不能事先枚举所有标识符,因此将所有标识符统一作为一类单词分配同一个种别码即多词一码,为了区分不同的标识符,用token的第二个分量“属性值”来存放不同标识符具体的字面值。
单词类型 | 种别 | 种别码 | |
---|---|---|---|
3 | 常量 | 整型,浮点型,字符型,布尔型,… | 一型一码 |
常