编译原理:程序分析阶段与源程序内部表示
编译过程的不同阶段中,源程序的内部表示会随着分析的深入而不断演变。以表达式 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
评论区