编译程序的结构与编译过程
- 词法分析
- 语法分析
- 语义分析与中间代码生成
- 代码优化
- 目标代码生成
词法分析
词法分析阶段的任务是对输入的符号串形式的源程序进行最初的加工处理.
依次扫描读入的源程序中的每个字符,识别出源程序中有独立意义的源语言单词, 用某种特定的数据结构对它的属性予以表示和标注.
语法分析
依据源语言的语法规则, 对词法分析的结果进行语法检查,并识别出单词符号串所对应的语法范畴, 类似于自然语言中对短语, 句子的识别和分析.
语义分析与中间代码生成
依据源语言限定的语义规则对语法分析所识别的语法范畴进行语义检查并分析其含义, 初步翻译成与其等价的中间代码. 语义分析是整个编译程序完成的最实质性的翻译任务.
代码优化
代码优化是为了改进目标代码的质量而在编译过程中进行的工作。其实质是在不改变源程序语义的基础上对其进行加工变换,以获得更高效率的目标代码。使目标程序缩短运行时间,节省存储空间。
目标代码生成
编译的最后阶段,该阶段的任务是,根据中间代码及编译过程中产生的各种表格的有关信息,最终生成所期望的目标代码程序。一般为特定机器的机器语言代码或汇编语言代码。