编译原理课堂笔记之第一章-引论
什么是编译程序
编译程序:先把源程序翻译成机器语言,然后再执行。
解释程序:每次读源程序的一句,边翻译边执行。
编译过程
编译过程:把英文翻译成中文(类比)
- 编译过程 : 五个阶段
- 词法分析
- 任务:输入源程序,识别出一个个单词
- 依循原则:构词规则
- 描述工具:有限自动机
- 语法分析
- 任务:根据语言的语法规则把单词符号分解成各类语法单位(语法范畴)
- 依循原则:语法规则
- 描述工具:上下文无关文法
- 中间代码产生
- 任务:队各类不同语法范畴按语言的语义进行初步翻译
- 依循原则:语义规则
- 中间代码:三元式、四元式,树,…
- 优化
- 任务:对中间代码进行加工变换,希望在最后阶段产生更高效的目标代码
- 依循原则:程序的等价变换规则
- 目标代码产生
- 任务:把中间代码变成特定机器上的目标代码
- 依赖于硬件系统结构和机器指令的含义
- 目标代码三种形式
- 绝对指令代码:可直接运行
- 可重定位指令代码:需要连接装配
- 汇编指令代码:需要进行汇编
- 词法分析
编译程序
- 编译程序总框
- 表格与表格管理
- 出错处理
- 语法错误
- 语义错误
- 遍
- 对源程序或源程序的中间表示从头到尾扫描一次
- 编译前端和后端
- 好处
- 程序罗技结构清晰
- 优化更充分,便于移植
- 好处
编译程序与程序设计环境
- 编辑程序
- 编译程序
- 连接程序
- 调试工具
编译程序生成
- 以汇编语言和机器语言为工具
- 高级语言书写
- 移植方法:把一种机器上的编译程序移植到另一种机器上
- 自展技术
- 编译程序自动产生