编译原理是关于编译器运行机制和基本实现手段的介绍。编译原理把制作一个编译器需要的各个模块和部件分开讲解,这样利于模块化理解编译器的构造。
并不能说学懂了编译原理就可以写出一个编译器来,因为这仅仅是"原理"。所以如果要亲手实现一个属于自己的编译器还需要更多的实验作为积累。
编译一个程序大致分为如下几步骤:
词法分析 -> 语法分析 -> 语义分析 -> 生成中间代码 -> 代码优化 -> 最终目标代码
并不是每一个编译器都会严格按照上面的这些步骤来编译一个程序,有些步骤可以合并成同一个模块,而有的步骤可能根本就不需要,总之,实现的方式一定要灵活,按照需求自己设计和定制。
另外就是,不要轻易的管自己的作品叫"编译器",编译器是用于把源程序翻译转换成面向机器的代码。比如你的"编译器"是负责把C++翻译成Java,那么这顶多算是一个翻译器。当然,我们并不需要奔着编译器去,没有必要非得实现一个完整的要命的编译器,即使是编译器中的一部分技术也会对我们有很大的作用。