1、第七章 编译概述,第一节 不同语言之间的翻译一. 翻译 1. 翻译程序: 等价地变换 2. 编译程序: 高级语言低级语言 3. 汇编程序: 汇编语言机器语言 4. 解释程序:中间代码结果,第七章 编译概述,5. 宿主机:运行翻译程序的机器 6. 自驻留: 编译程序能生成可供其宿主机执行的机器代码 7. 自编译: 编译程序是用源语言写的 8. 交叉编译: 编译程序生成的不是宿主机的机器代码,而是别的机器代码,二. 编译执行和解释执行 1. 编译执行源程序 目标程序 计算结果汇编语言程序 目标程序2. 解释执行:一边翻译一边解释执行,编译,编译,运行,汇编程序,初始数据,第七章 编译概述,第二节
2、编译步骤 1. 词法分析: 输入字符串,根据词法规则识别出单词符号。 2. 语法分析: 根据语法规则,将单词符号构成各类语法单位,并进行语法检查。,第七章 编译概述,3. 语义分析:根据语义规则,进行初步编译。 4. 优化:对中间代码进行等价变换,以使代码更有效。 5. 目标代码生成:生成机器语言程序或汇编语言程序。,第七章 编译概述,说明: (1)实用的编译程序不一定总是分成5个阶段 (2)目标程序不一定能立即执行,可能还要经过连接、装入等阶段 (3)编译的各阶段均需要和符号表管理程序、出错处理程序打交道,第七章 编译概述,6. 符号表管理:完成符号表的建立,查找,更新。 7. 出错处理:发现、指出、限制,第七章 编译概述,源程序字符串,词法分析器,语法分析器,语义分析器,代码优化器,目标代码生成器,单词流,语法树,中间代码序列,中间代码序列,目标程序,符 号 表 管 理 程 序,出 错 处 理 程 序,编译程序的结构,第七章习题,均是思考题,