中间代码生成及编译器后端概述

中间代码生成及编译器后端概述

中间代码的生成

经过了词法分析,语法分析,语义分析之后就到了中间代码生成阶段

中间代码有两种形式:

  • 三地址码
  • 语法结构树(简称语法树),这和之前的语法分析树不同

三地址码

三地址码由类似汇编语言的指令序列组成,每个指令最多有三个操作数,所以称为三地址码

地址可以有三种形式

  1. 源程序中的名字(变量名)
  2. 常量
  3. 编译器产生的临时变量

常见的三地址指令

在这里插入图片描述

三地址指令的表示

  1. 四元式
  2. 三元式
  3. 间接三元式

在这里插入图片描述

在这里插入图片描述

目标代码的生成

中间代码生成之后会对其代码进行一定程度的优化,然后就进入进入到了目标代码的生成

目标代码生成器会将中间代码作为输入,并将它映射到目标语言,同时目标代码生成器还有一个重要任务就是为变量分配寄存器.

机器代码相关优化器

有一个重要任务就是为变量分配寄存器.

机器代码相关优化器

为改进代码所做的等价程序变换,使其运行的更快,占用空间更少.

猜你喜欢

转载自blog.csdn.net/qq_44823898/article/details/108018607