编译原理学习笔记 -- 绪论1
2014-06-16 00:59
169 查看
1. 语言处理器
语言处理系统
_________ 经过预 _______ 源程序 --> |预处理器| --> 处理的 --> |编译器| --> 目标汇编程序 -------- 源程序 ------- _______ 可重定位的 ______________ --> |汇编器| --> 机器代码 --> |链接器/加载器| --> 目标机器代码 ------- -------------- ↑ 库文件/可重定位对象文件预处理器:把源程序聚合在一起,并宏展开
链接器:解决外部内存地址问题
加载器:把所有的可执行目标文件放到内存中执行
练习
1.1 编译器与解释器的区别
编译器是直接将源语言写的程序翻译成一个等价的用目标语言编写的程序,而解释器并不是通过翻译的方式生成目标程序,从用户的角度讲,解释器直接利用用户提供的输入执行源程序中指定的操作。源程序 ---> 编译器 ---> 目标程序 _________ 源程序 ---> | | | 解释器 | ---> 输出 输 入 ---> |________|
1.2 编译器与解释器相对各自的优点
编译器的优点:生成的目标程序执行速度快解释器的优点:由于其是逐条执行源程序,因此具有更好的错误诊断效果
1.3 在一个语言系统中,编译器产生汇编语言而不是机器语言的优点是什么
汇编语言比较容易输出和调试减轻开发工作量,易于实现。不是每一个开发人员都对机器语言非常了解
1.4 把一种高级语言翻译成为另一种高级语言的编译器称为源到源(source-to-source)的编译器。编译器使用C语言作为目标语言有什么好处
易于移植,在不同的平台上开发人员只需要重新实现C语言到机器语言减轻开发工作量,只需C语言到机器语言只需实现一次
C语言比较容易输出和调试
1.5 描述一下汇编器所要完成的一些任务
与编译器类似宏展开
把指令转换为机器代码
相关文章推荐
- 编译原理学习笔记--第一章 绪论
- 编译原理学习笔记——第一章:绪论
- 编译原理学习笔记
- Android开发学习笔记(二)——编译和运行原理(2)
- 编译原理之学习 lua 1.1 笔记 (二) 函数调用与局部变量
- 编译原理学习笔记03——(唐僧团队智过平顶山—学从上而下语法树)——2014_1_16
- 编译原理学习笔记13——(没有plan b的斧头帮—— LL分析法)——2014_1_29
- 编译原理学习笔记02——(对最基本文法的理解)——2014_1_12
- 编译原理学习笔记
- 编译原理学习笔记04——(孙悟空学72变之菩提老祖的阴谋—可怕的左递归)——2014_1_18
- 编译原理学习笔记12——(魔镜魔镜告诉我—— 构造预测分析程序)——2014_1_28
- 编译原理学习笔记一(待续)
- 编译原理学习笔记05——(识别孙悟空72变之魔鬼特训—递归下降分析程序构造)——2014_1_20
- 编译原理学习笔记
- Android开发学习笔记(二)——编译和运行原理(1)
- 编译原理学习笔记
- (转)Android开发学习笔记(二)——编译和运行原理(1)
- 编译原理学习笔记11——(三个臭皮匠顶上—— 构造预测分析表)——2014_1_27
- 编译原理学习笔记10——(野火烧不尽再递归下降—— E → E+T | T从上向下程序)——2014_1_26
- 编译原理学习笔记09——(比蜡还要没有味道的——枯燥的LL)——2014_1_25