编译原理:程序分析阶段与源程序内部表示
编译过程的不同阶段中,源程序的内部表示会随着分析的深入而不断演变。以表达式 a = b + c * d
为例,分析其在词法分析阶段的处理过程:
词法分析阶段
词法分析器逐个读取源程序字符,完成以下任务:
-
识别单词: 从字符流中识别出具有语义意义的单词,例如标识符(变量名)、关键字、运算符、常量等。 在示例表达式中,词法分析器会识别出
a
,=
,b
,+
,c
,*
,d
等单词。 -
记号化: 为识别出的单词分配预定义的类别代码(token),以便后续语法分析阶段处理。 例如,可以使用以下记号表示不同的词法元素:
25
: 标识符 (a, b, c, d)36
: 赋值运算符 (=)32
: 加法运算符 (+)31
: 乘法运算符 (*)
因此表达式
a = b + c * d
可表示为记号序列:(25, a), (36, =), (25, b), (32, +), (25, c), (31, *), (25, d)
。
通过词法分析,源程序的原始字符流被转换为更结构化的记号序列,为后续语法分析和语义分析奠定基础。
6.82MB
文件大小:
评论区