1.1什么叫编译程序?
把一种源语言转换成一个目标语言。
翻译程序有两种方式:编译和解释。
区别在于解释没有产生目标程序,而是便解释边执行源程序;而编译会生成目标文件在执行。
1.2编译程序的过程?
均是五部:
源程序(ASCII码)
a=b
一、词法分析器
输出单词符号(一般是二元式)
a b =
二、语法分析器
成为语法单元(一般是句子)
基本字:a b 赋值号: =
三、中间代码产生器 语义分析
生成中间代码(一般是四元式)
算符 左操作数 右操作数 结果
四、优化器
依然是中间代码
五、目标代码生成器
生成目标代码(可重定位的代码)
低级语言代码
- PS:一些相关
(1)表格与表格管理
登记源程序中出现 编译各阶段都需要不停构造查找或更新有关表格。
(2)出错处理
应对源程序中的错误。错误检测和处理
(3)编
具体实现编译过程时往往会若干遍。
(4)编译前端和编译后端
前端主要由源语言有关和那些目标语言无关的部分(包括词法分析、语法分析、语义分析和中间代码)
后端包括编译程序中与目标语言有关那个。仅依赖于中间语言。