- 编译方法、技术与实践
- 许畅等编著
- 368字
- 2025-02-17 16:57:06
1.2.4 中间代码生成
在编译的过程中会生成多种中间表示形式,如语法树、词法单元流等,不同的中间表示形式可满足编译各任务的需要,比如语法分析树有利于在编译过程中进行静态检查。
在完成语义分析后,编译器前端的工作告一段落。编译器将语法分析树转化为更适合代码优化及目标代码生成的形式,这一过程被称为中间代码生成。我们关注一种中间表达形式:三地址码,每个指令具有不多于三个的运算分量,这种形式与机器码中寄存器的读取和计算类似。
例如,对于语法树:

生成的三地址码为:

中间代码生成器按照表达式的执行顺序(后序遍历语法树),将语法树转化为中间代码。在第4章中,我们将讨论以下内容:
●中间代码的表示形式,不同的中间代码表示形式及其优劣。
●类型和声明的相关概念(例如,类型表达式、类型等价、局部变量名的存储布局、类型声明和类型记录等表达式的生成)。
●表达式翻译策略。