前言
编译器,是把一种语言(通常是高级语言)转换为另一种语言(通常是低级语言)的程序。大多数编译器由三部分组成:
-
前端(Frontend):负责解析源码,检查错误,生成抽象语法树(AST),并把 AST 转化成类汇编中间代码
-
优化器(Optimizer):对中间代码进行架构无关的优化,提高运行效率,减少代码体积,例如删除 if (0) 无效分支
-
后端(Backend):把中间代码转换成目标平台的机器码
编译器的任务:将源码转成二进制的机器码
比如,下面这段源码&#
编译器,是把一种语言(通常是高级语言)转换为另一种语言(通常是低级语言)的程序。大多数编译器由三部分组成:
前端(Frontend):负责解析源码,检查错误,生成抽象语法树(AST),并把 AST 转化成类汇编中间代码
优化器(Optimizer):对中间代码进行架构无关的优化,提高运行效率,减少代码体积,例如删除 if (0) 无效分支
后端(Backend):把中间代码转换成目标平台的机器码
编译器的任务:将源码转成二进制的机器码
比如,下面这段源码&#