编译原理(龙书)学习笔记 第一章

编译原理(龙书)学习笔记 第一章

  • 1.1语言处理器
    • 解释器(interpreter) :
    • 编译器(compiler):
    • 一个语言处理系统
    • 练习
      • 1.1.1:编译器和解释器之间的区别
      • 1.1.2:相对优点
      • 1.1.3:编译器产生汇编而不是机器语言的好处是什么?
      • 1.1.4:编译器使用C语言作为目标语言的好处
      • 1.1.5:汇编器要完成的任务

1.1语言处理器

解释器(interpreter) :

不通过翻译的方式生成目标程序,从用户的角度来看,解释器利用用户提供的输入执行源程序中指定的操作
他对于错误的诊断效果比编译器更好,因为他逐个语句地执行源程序。

编译器(compiler):

就是一个程序,可以把一种语言编写的程序(源语言程序)翻译生成为另外一种语言编写的程序(目标语言程序)
编译原理(龙书)学习笔记 第一章_第1张图片

一个语言处理系统

: 源程序经过预处理器(preprocessor) 生成经过预处理的源程序,再到编译器 形成目标汇编程序,再到汇编器 生成可重定位的机器代码,再到链接器/加载器 (链接器能解决外部内存地址问题,加载器把所有的可执行文件放到内存中执行)最后得到目标机器代码
编译原理(龙书)学习笔记 第一章_第2张图片

练习

1.1.1:编译器和解释器之间的区别

编译器是一种程序,把源程序翻译成目标语言程序,并且报告错误。

解释器就直接执行源程序中指定的用户提供输入的操作

1.1.2:相对优点

编译器相对于翻译器:更快,C生成目标语言程序比翻译器inputs,outputs更快

翻译器相对于编译器:拥有更好的错误诊断,毕竟他是逐个语句执行源程序。

1.1.3:编译器产生汇编而不是机器语言的好处是什么?

汇编语言更容易生成并且更方便debug

1.1.4:编译器使用C语言作为目标语言的好处

C的编译器多,基本上可以编译到每一个硬件

1.1.5:汇编器要完成的任务

把汇编程序翻译成机器代码 机器代码是可重定位的。

你可能感兴趣的:(编译原理,编译器,编译原理)