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

  • Post author:
  • Post category:其他




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



中间代码的生成

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

中间代码有两种形式:

  • 三地址码
  • 语法结构树(简称语法树)

    ,这和之前的语法分析树不同



三地址码

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

地址可以有三种形式

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



常见的三地址指令

在这里插入图片描述



三地址指令的表示

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

在这里插入图片描述

在这里插入图片描述



目标代码的生成

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

目标代码生成器会将

中间代码

作为输入,并将它映射到

目标语言

,同时目标代码生成器还有一个重要任务就是

为变量分配寄存器

.



机器代码相关优化器

有一个重要任务就是

为变量分配寄存器

.



机器代码相关优化器

为改进代码所做的

等价程序变换,使其运行的更快,占用空间更少.



版权声明:本文为qq_44823898原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。