1.1.1 编译器和解释器之间的区别是什么
答:
编译器是一个程序,它可以阅读某一种语言(源语言)编写的程序,并把该程序转译成一个等价值、用另一种语言(目标语言编写的程序)。
Created with Raphaël 2.2.0源程序编译器目标程序
Created with Raphaël 2.2.0输入目标程序输出
解释器是另一种常见语言处理器。它并不通过翻译的方式生成目标程序。从用户角度来看,解释器拿到用户的输出执行源程序指定操作。
源程序
解释器
输入
输出
1.1.2 编译器和解释器的优缺点
答:
一个输入输出的过程,利用编译器先编译的过程比直接使用解释器运行效率更高。解释器比编译器诊断错误效果更好。
编译器:运行效率更高,需要先编译成目标程序耗时,错误诊断效果不好。 解释器:边执行边解释,无需耗时去编译,错误诊断效果好。
1.1.3 在一个语言系统中,编译器产生汇编语言而不是机器语言的好处是什么?
答:
汇编语言比较容易输出和调试。
1.1.4 编译器使用C作为目标语言有什么好处?
- 跨平台移植性比较好
- 较汇编语言相比抽象程度更高
1.1.5 描述一下汇编器所完成的任务
- 对源文件的预处理;
- 对汇编语法的诊断;
- 映射汇编指令到对应机器码;
- 创建特定结构的可重分配目标文件文件。