从零开始学习编译原理 Day 1
第1章 引论
1.1 语言处理器
编译器(compiler)
简单地说,一个编译器就是一个程序,它可以阅读以某一种语言(源语言)编写的程序,并把该程序翻译成一个等价的、用另一种语言(目标语言)编写的程序。
解释器(interpreter)
解释器是另一种常见的语言处理器。它并不通过翻译的方式生成目标程序。从用户的角度来看,解释器直接利用用户提供的输入执行源程序中指定的操作。
Java语言处理器
Java语言处理器结合了编译和解释的过程,一个Java源程序首先被编译成一个称为字节码(bytecode)的中间形式。然后由一个虚拟机对得到的字节码加以解释执行,这样安排的好处之一是在一台机器上编译得到的字节码可以在另一台机器上解释执行。通过网络就可以完成机器之间的迁移。
预处理器(preprocessor)
除了编译器之外,创建一个可执行得目标程序还需要一些其他程序。程序可能被分为多个模块,并存放于独立的文件中,把源程序聚合在一起的任务有时会由一个被称为预处理器的程序独立完成,预处理器还负责把那些称为宏的缩写形式转换为源语言的语句,然后将其传递给编译器。