1. 导引
- 符号表:在编译器运行过程中逐步构建
- 词法分析:读入源程序的字符流,输出为词法单元 (Token),怎么方便怎么来,一般包含
- Token kind: 表示词素种类
- Attribute value: 表示词素附带属性信息
- Source location: 表示词素在源代码中的位置
- 语法分析:根据各个词法单元的第一个分量来创建树型的中间表示形式,通常是语法树 (Syntax tree)
- 树形结构相比线形结构多了一个从属关系/从属结构的表达
- 语义分析:使用语法树和符号表中的信息,检查源程序是否满足语言定义的语义约束
- 中间代码生成:一般采用三地址码(每个语句最多包含三个运算分量)