程序执行的方式
- 先编译后执行
- 边解释边执行
编译过程
- 识别单词(拼写正确
- 语法检查(顺序格式
- 语义理解(合理
- 组织译文(符合原文
工作逻辑
- 分析阶段
- 词法分析
- 语法分析
- 语义分析
- 综合阶段
- 中间代码生成
- 目标代码生成
- 优化
词法分析
- 分析字符序列
- 识别单词:种别、属性
- 查词法错误
- 标识符等级
语法分析
- 分析单词序列
- 识别语法结构
- 查语法错误
-
构造分析树
image.png
语义分析
-
确认标识符的属性
- 类型、作用域等
-
语义检查
-
运算的合法性、取值范围等
-
比如字符串+数字
-
-
子程序的静态绑定
- 代码存储的相对地址
-
变量的静态绑定
- 数据存储的相对地址
生成中间代码
-
中间语言
-
机器无关
-
易于优化与转换
image.png
-
代码优化

目标代码生成
-
中间代码——>目标机的机器指令代码或汇编代码
image.png
编译程序的逻辑过程

网友评论