*绪论
1.面向机器——》面向人类
汇编指令:用符号表示的指令
汇编语言:汇编指令的集合称为汇编语言
2.语言之间的翻译
- 编译与汇编
- 反编译与反汇编
- 转换
- 交叉汇编
-
3.编译器与解释器
(1)语言翻译的两种基本状态
(2)各自特点
- 编译器:工作效率高:时间快、空间省;交互性胡动态性差,可移植性差
- 解释器:工作效率低
差异:编译器采用先翻译后执行,解释器采用边翻译边执行;区别往往是从形成中间代码之后开始的
4.编译器的工作原理与基本组成
(1)程序设计语言构成 声明+操作 == 完整定义
-
声明性语句
-
操作性语句
-
过程定义 = 过程头 + 过程体
(2)以阶段划分编译器
(3)编译器各阶段工作
-
词法分析:源程序————>记号流
-
语法分析:记号流————>语法树
-
语义分析:静态语义检查
-
中间代码生成:既接近目标语言,又与具体机器无关的表示
-
中间代码优化:局部优化,循环优化,全局优化
-
目标代码生成
-
符号表管理:合理组织符号,便于各阶段查找/填写
-
出错处理:动态出错、静态出错
(4)编译器的分析/综合模式 -
分析部分(前端):
-
综合部分(后端):