声明:本系列文章,是根据中国大学MOOC网 哈工大的编译原理 这门课学习而成的学习笔记。
什么是编译
编译:将高级语言(源)翻译成汇编语言或机器语言(目标)的过程
编译器在语言处理系统中的位置
预处理器:将源程序转换成经过预处理的源程序。
预处理过程:把存储在不同文件中的源程序聚合在一起。把被称为宏的缩写语句转换为原始语句
编译器:将源程序转换为汇编语言程序。
汇编器:将汇编语言程序转换成可重定位的机器代码。
可重定位的机器代码:汇编器生成的机器代码在内存中存放的起始位置不是固定的,代码中的所有地址都是相对起始位置的相对地址。而起始位置+相对地址=绝对地址,因此我们需要加载器来修改可重定位地址。
加载器:修改可重定位地址,将修改后的指令和数据放到内存中适当的位置。
链接器