【从零开始学习计算机科学】编译原理(一)编译过程概述
- 绪论
-
- 编译过程概述
- 词法分析
- 语法分析
- 代码优化
- 代码生成
- 其他功能
- 编译器的前端和后端
绪论
什么叫编译程序?为什么我们需要编译程序?编译程序就是一个程序,将便于人编写、阅读、维护的高级计算机语言所写作的源代码程序,翻译成与之等价的另一种能为计算机解读、运行的低级机器语言。
一般来说,执行一个高级语言所写的程序的方法有两种,分别是编译执行和解释执行。编译执行有一个单独的编译过程将源程序翻译生成目标程序,具体执行的是目标程序,因此是一次编译多次执行。例子包括C、C++等编程语言。解释执行在每次运行时,将源程序边翻译边运行,因此每次执行都需要解释。例子包括Python、JavaScript、Matlab等编程语言。其共同点是将高级语言翻译(编译)成机器语言进行执行
编译过程概述
编译程序的工作,从输入源程序开始,到输出目标程序结束,与自然语言之间的翻译有很多相似之处。
英译中 (如I love China.) 需经历的步骤主要有:1,识别出句子中的单词;2,分析句子的语法结构;3,句子的语义分析;4,对语义进行修饰;5,写出最后的译文。而在编译过程中,其可以抽象为词法分析、语法分析、语义分析及中间代码生成、机器无关的代码优化、目标代码生成。因此,编译器是分阶段执行的,每个阶段将源程序从一种表示转换成另一种表示
词法分析
此阶段完成的任务(以a=