今天开始总结编译原理的知识,但是感觉这门课有难度,嗯?无妨,就是干。第一篇:编译器简介及编译器结构概述。
下方的图片摘自编译器设计第二版。本文参考编译器设计第二版(橡书)和编译原理第三版(陈火旺版)。
编译器简介
编译器是什么?
我们平时编程所用的语言是高级语言,而机器只能识别机器语言。那什么做桥梁?编译器做桥梁。编译器是一个复杂的程序,它的工作是 将源语言程序(一般是高级语言)转化为 目标语言程序(一般是低级语言)。也就是下图所示:

需要注意的是,不要纠结于编译器的源语言 是不是高级语言,目标语言是不是低级语言,编译器 的作用就是将一种语言 转化 为另一种等价的语言。(所谓等价指的是 hi 的中文意思 是 你好 而不是再见)。
比如 有些编译器 可以将高级语言程序转换为另外的高级语言程序,这类编译器叫做 源到源的转换器。又比如,有些编译器 可以将低级语言程序 转换 为 高级语言程序,这类编译器叫做 反编译器。
当然回到常规的编译器来讲,机器要执行指令并产生结果,就必须要有编译器将高级语言程序转化为低级语言程序的这个过程。但是,有些语言则不同(如书中所提Perl ,Scheme,A