编译程序

编译程序:源语言→目标语言

编译的两个步骤:

  1. 分析(从源语言到抽象语法分析)
  2. 综合(从抽象语法分析到目标语言)

编译程序的前端、中端、后端:

  1. 前端:完成分析
  2. 中端:完成一些中间代码工作
  3. 后端:完成综合

编译程序的逻辑结构:

  1. 词法分析:确定每个词的类别
  2. 语法分析:词→语法分析树
  3. 语义分析:确定语法分析树无法判断出的语法错误
  4. 符号表:用户自定义的符号名
  5. 出错处理
  6. 中间代码生成:得到用语法分析语言表示的内容,如抽象语法树AST、三地址码TAC等
  7. 目标代码生成

编译程序的:从头到尾扫描一遍某种代码

一些程序:

  • 编译程序
  • 汇编程序
  • 装入和链接程序
  • 解释程序
  • 预处理程序
  • 调试程序

编译器的可视化理解:T型图

1726638383225

  • S:源语言
  • I:实现语言(编写编译程序的语言)
  • T:目标语言

本地编译器:S-T-T

交叉编译器:S-I-T(I≠T)

T型图的T型叠加

1726638565560

从左到右分别为:源程序、使用的编译器、目标程序

二级叠加也得到允许:
1726638610228