如同第一章描述一样,编译器简单来说就是个翻译器。将用一种语言写出的程序转换成另一种语言。被转换的语言可以是任何语言,比如一门高层次语言,phototypesetting 命令,VLSI(芯片)布局,但是大多数时候是可用计算机的机器语言。

正如有很多不同的编程语言一样,也有很多种机器语言,尽管机器语言的多样性要少很多。每种机器语言对应不同的处理器架构。正式来说,架构就是硬件与软件的接口,即编译器生成的或者程序员为裸机手写的语言。处理器的实现是架构在硬件的实现。为了生成正确的代码,编译器作者只需要理解目标架构。为了生成高效的代码,还要了解实现,因为这决定了生成代码的执行速度。


网站有更详细的介绍,比如 x86 的 CSIC 指令集,以及 ARM 的 RISC 指令集。

更详细的请看chapter5