下一章知识点: https://blog.csdn.net/Jue_Wuu/article/details/106433671
什么是编译
计算机语言分成 高级语言、汇编语言 和 机器语言。计算机只能执行机器语言。从汇编语言到机器语言的过程叫 汇编,从高级语言到汇编语言或直接到机器语言的过程叫 编译。
将高级语言写的源程序转换成可以运行的进程要经历 语言处理系统,编译器只是这个系统中的一环。语言处理系统的典型工作流程为
- 预处理器 将不同文件中源文件聚合到一起,并对宏进行操作;
- 编译器 将处理后的源文件编译为汇编语言程序;
- 汇编器 从汇编语言程序生成可重定位的机器代码(可重定位指在内存中的位置不固定);
- 链接器 会将多个可重定位程序和库连接起来,并处理外部地址(跨文件的引用);
- 加载器 会处理可重定位的地址,变成真实的地址,并将程序装入内存中。
编译系统的结构
编译的本质是翻译,将源语言翻译到目标语言。
假定我们要将一个句子中英文翻译到中文,我们会先尝试了解这个句子的意思,这个意思是独立于任何自然语言的,专业点来说这个叫做 中间语言表示。在这个例子中,为了得到中间语言表示我们需要进行 语义分析;为了进行语义分析需要知道句子中每个短语的成分,这个过程为