编译程序
编译程序:源语言→目标语言
编译的两个步骤:
- 分析(从源语言到抽象语法分析)
- 综合(从抽象语法分析到目标语言)
编译程序的前端、中端、后端:
- 前端:完成分析
- 中端:完成一些中间代码工作
- 后端:完成综合
编译程序的逻辑结构:
- 词法分析:确定每个词的类别
- 语法分析:词→语法分析树
- 语义分析:确定语法分析树无法判断出的语法错误
- 符号表:用户自定义的符号名
- 出错处理
- 中间代码生成:得到用语法分析语言表示的内容,如抽象语法树AST、三地址码TAC等
- 目标代码生成
编译程序的遍:从头到尾扫描一遍某种代码
一些程序:
- 编译程序
- 汇编程序
- 装入和链接程序
- 解释程序
- 预处理程序
- 调试程序
编译器的可视化理解:T型图
- S:源语言
- I:实现语言(编写编译程序的语言)
- T:目标语言
本地编译器:S-T-T
交叉编译器:S-I-T(I≠T)
T型图的T型叠加
从左到右分别为:源程序、使用的编译器、目标程序
二级叠加也得到允许: