知识脑图
总结
重点
基本概念
- 源程序:用汇编语言或高级语言编写的程序。
- 翻译程序:将源程序转换成目标程序的程序称为翻译程序,指各种语言的翻译器
- 汇编程序:用汇编语言书写,经过翻译程序得到用机器语言表示的程序
- 编译程序:源程序是用高级语言书写,经加工后得到目标程序
- 解释程序:对源程序进行解释执行的程序
源程序、翻译程序和目标程序三者关系
源程序是翻译程序的输入,目标程序是翻译程序的输出,其中当源程序不同时,翻译程序的过程和目标程序的称呼不同。
编译程序的逻辑部分和特点
- 词法分析程序:分析和识别单词,分析扫描源程序,根据语法的词法规则分析并识别单词,并以某种编码形式输出
- 语法分析程序:根据语法规则,分析并识别出各种语法成分,并进行语法正确性检查
- 语义分析和生成中间代码:对识别出的各种语法成分进行语义分析,并产生相应的中间代码
- 代码优化程序:提高目标程序的质量
- 生成目标程序:由中间代码生成目标程序(地址指令序列)
- 符号表管理:及时地把源程序中的信息和编译过程中所产生的信息登记在表格中,在随后的过程中同时查找这些表格的信息
- 出错处理:诊断出错误,并报告用户错误的性质和位置,以便用户修改源程序
前端与后端的定义及特点
- 前端:与源程序有关的编译部分;特点:与源语言有关;包括:词法分析、语法分析、语义分析、中间代吗生成、代吗优化、相应的错误处理和符号表操作,为分析部分
- 后端:与目标机有关的部分;特点:与目标机有关;包括:代码优化(目标机有关)、目标程序生成、相应错误处理和符号表操作,为综合部分
- 分开原因:在多种源语言和目标语言的开发过程中,灵活搭配,消除工作量,提高开发效率
pl0的体系结构和各个模块的功能
难点
解释程序和“编译-解释执行”系统
- 解释程序(Interpreter):对源程序进行解释执行的程序
- 解释程序的特点:
1、不产生目标程序文件
2、不区别翻译阶段和执行阶段
3、翻译源程序的每条语句后直接执行
4、程序执行期间一直有翻译程序守候
5、常用于虚拟机 - “编译-解释执行”系统工作过程:
pl0语言结构
包括说明部分和过程部分
- 说明部分包括常量和变量定义(红色部分)和过程说明部分(蓝色部分),对于定义的主程序过程说明中仍可以嵌套内层的局部过程(Q)
- 过程部分为主程序入口,pl0程序执行从此开始(灰色部分)