编译:源程序(高级/汇编)→编译器 →目标机器代码程序(二进制)
并行编译的应用:OpenMP Hadoop MPI并行程序设计:基于消息传递
1、什么是编译程序?
翻译程序:源语言(高级语言/汇编语言)=>邓海军的目标语言 (汇编语言,机器)
编译程序:高级语言 => 目标语言(汇编或者机器语言) (C java )
汇编程序:汇编语言 => 机器语言
解释程序:源语言程序作为输入,边解释边执行或将源程序翻译成某种中间代码的形式后再加以运行(basic 和 python )
2、编译过程概述
- 词法分析:识别单词
- 语法分析:语法规则(程序,语句,表达式等)
- 语义分析:语义检查;类型搜集(类型检查,变量声明,类型是否一致,变量是否有值)
- 中间代码生成:此时源程序变成了中间代码。(四元式:运算符,运算对象1,运算对象2,结果)
- 代码优化:优化器
- 目标代码生成:中间代码=>机器可以识别的代码
目标代码:①汇编代码②二进制代码③内存形式:load and go
符号表:收集符号属性信息,语法的合法性信息,目标代码生成阶段地址分配依据
错误检测程序:检测错误。