编译器后端(compiler back-end),理学-计算机科学技术-计算机软件-系统软件-编译系统,编译器中执行与目标机平台相关的代码优化与目标代码生成的软件模块集合。编译器通常可以划分为前端、中端和后端结构,与输入的源语言密切相关的部分称为编译器前端,负责将源语言程序转换为中间表示;编译器中端在中间表示上执行和机器无关的分析与优化,例如冗余删除、循环优化等;编译器后端则执行与机器密切相关的优化(例如窥孔优化、指令调度等)和目标代码生成。前端、中端和后端结构使编译器可以支持多种源语言或者多个目标平台。如图所示:多语言多目标编译系统编译器后端对中间表示进行操作,同源程序使用的语言基本无关,最终将中间表示翻译成等价的目标代码。主要工作过程是:①执行与目标机器相关的优化。即针对目标机器CPU体系结构特征的优化。典型的例子是窥孔优化,考察一小段目标指令(称为窥孔)并替换为更短和更快的一段指令的一种优化。②代码生成。即将中间表示转换为目标代码。这一阶段的工作主要包括寄存器分配、内存分配、指令选择和指令调度等。