中间代码生成及编译器后端概述
中间代码的生成
经过了词法分析,语法分析,语义分析之后就到了中间代码生成阶段
中间代码有两种形式:
- 三地址码
- 语法结构树(简称语法树),这和之前的语法分析树不同
三地址码
三地址码由类似汇编语言的指令序列组成,每个指令最多有三个操作数,所以称为三地址码
地址可以有三种形式
- 源程序中的名字(变量名)
- 常量
- 编译器产生的临时变量
常见的三地址指令
三地址指令的表示
- 四元式
- 三元式
- 间接三元式
目标代码的生成
中间代码生成之后会对其代码进行一定程度的优化,然后就进入进入到了目标代码的生成
目标代码生成器会将中间代码作为输入,并将它映射到目标语言,同时目标代码生成器还有一个重要任务就是为变量分配寄存器.
机器代码相关优化器
有一个重要任务就是为变量分配寄存器.
机器代码相关优化器
为改进代码所做的等价程序变换,使其运行的更快,占用空间更少.