一.概述
编译,即是把源代码转换翻译成可执行代码的过程。即是把人可以阅读的高级语言代码,转换为计算机即CPU可执行的编码的过程。比如把C语言编译为一条条汇编指令组成的可执行格式,如elf或exe.
严谨的理论可以参考龙书、虎书等,这里记录一点印象中的理解。
二. 基本过程
1. 词法分析:检查错别字,即形式上的错误;
2. 语法分析:检查语法错误,不及物动词有没有加介词之类的。生成语法树;
3. 中间代码生成:基于语法树生成中间形式的代码,中间代码更接近于目标代码,转换较为容易;
4. 代码优化:一些无意义或者没必要的代码可以被优化掉,一些代码可以调整为更高效率的顺序;
5. 目标代码生成:生成最终的目标代码,即机器码;
中间代码之上为编译器前端的职责范围,中间代码之下为编译器后端的职责范围。