中间代码生成
编译器的前端对源程序进行分析并产生中间表示,后端在此基础上生成目标代码。
本章内容包含中间代码表示、静态类型检查、中间代码生成。
在语法分析过程中使用语法制导翻译技术,可以一并完成语法分析、语义分析、静态检查、中间代码生成。
常见的中间表示形式包括抽象语法树和三地址代码。
高层的中间表示(例如语法树)刻画了自然的层次性结构,适用于静态检查这样的处理。
低层的表示形式适用于机器相关处理任务,比如寄存器分配和指令选择等。(三地址代码可以是高层也可以是低层表示形式)
中间代码生成和语义分析
GPT:在实践和工程中,现代编程语言都是生成AST之后再生成中间代码更广泛使用,g++和msvc都是这种方式。
优点是前后端分离、模块化解耦合、便于优化代码。
GPT:语法分析阶段使用语义动作直接生成中间代码的情形,一般出现在教学、轻量型语言、实时编译环境中。
(END)