编译原理:程序分析阶段与源程序内部表示

编译过程的不同阶段中,源程序的内部表示会随着分析的深入而不断演变。以表达式 a = b + c * d 为例,分析其在词法分析阶段的处理过程:

词法分析阶段

词法分析器逐个读取源程序字符,完成以下任务:

  1. 识别单词: 从字符流中识别出具有语义意义的单词,例如标识符(变量名)、关键字、运算符、常量等。 在示例表达式中,词法分析器会识别出 a, =, b, +, c, *, d 等单词。

  2. 记号化: 为识别出的单词分配预定义的类别代码(token),以便后续语法分析阶段处理。 例如,可以使用以下记号表示不同的词法元素:

    • 25: 标识符 (a, b, c, d)
    • 36: 赋值运算符 (=)
    • 32: 加法运算符 (+)
    • 31: 乘法运算符 (*)

    因此表达式 a = b + c * d 可表示为记号序列:(25, a), (36, =), (25, b), (32, +), (25, c), (31, *), (25, d)

通过词法分析,源程序的原始字符流被转换为更结构化的记号序列,为后续语法分析和语义分析奠定基础。

ppt 文件大小:6.82MB