Skip to content

目录

1.1 编译程序

  • 翻译程序:将源程序翻译成目标程序。
  • 编译程序:将一种高级语言源程序翻译成目标(低级语言)程序。
  • 解释程序:以某种语言作为输入,但不生成目标程序,一边解释一边执行。
  • 诊断编译程序:诊断源程序的错误。
  • 优化编译程序:优化目标程序的性能。
  • 交叉编译程序:在一种计算机上编译另一种计算机的程序。

第一个编译程序:Fortran (1957)

1.2 编译过程

词法分析

对源程序进行扫描,识别出单词(基本字,标识符,常数,运算符,界符)。

  • 工具:正规式(正则表达式),有限自动机

参考资料:

语法分析

对单词进行语法分析,识别出语法结构。

语义分析 & 中间代码生成,优化

分析代码的含义,进行初步的翻译

翻译成更接近目标代码的中间代码,并对中间代码进行优化。

Alt text

目标代码生成

目标代码的形式:

  • 绝对指令代码:可直接在内存中执行
  • 可重定位代码:可在内存中执行,但需要链接器来载入
  • 汇编指令代码:可在汇编程序中执行

在有写编译过程中,可以省去一些优化或者中间代码生成的步骤,这样能够减少编译时间,但是会影响目标代码的性能。

1.3 编译程序结构

Copyright © 2022 田园幻想乡 浙ICP备2021038778号-1