跳至主要內容

Chapter1 编译器组成

Chiichen原创小于 1 分钟课程笔记编译原理

编译器的结构

  • 词法分析 Lexical analysis (Scanning)
  • 语法分析 Syntax analysis (Parsing)
  • 语义分析 Semantic analysis

相关信息

以上三步的目的是通过分析输入代码,生成能被统一处理的中间层代码,亦即编译器前端(front-end)

  • 中间代码生成 IR Generation
  • 中间代码优化 IR Optimization
  • 最终代码生成 Generation
  • 最终代码优化 Optimization
C()TAC(ThreeAddressCode)intermediate

词法分析

  • 本质上就是为了输出一个合法的 token 序列,每个 token 就是一个关键词或者一个关键词+词素(lexeme)的组合如

    T_WhileT_Identifierx+

语法分析

  • 就是将一个 token 序列表示为一棵语法树

语义分析

  • 就是将语法分析得到的语法树转化为一个带注解(annotated)的语法树

中间代码生成

  • 从语法树生成通用的中间代码