摘要:本文通过对编译系统进行面向对象分析,探讨了基于编译类库构造编译器的方法.在我们的方法中,编译器由编译器基本构件和目标机描述两部分组成.编译器基本构件的抽象模型以语法单元为单位,集编译过程中的词法分析、语法分析、语义处理、优化和执行等操作与一体,打破了传统编译器中各个编译阶段的空间分割.目标环境的定制以GCC的RTL语言为工具.由于insn是RTL的功能单元,且不同目标机指令的RTL模板间存在许多相同点,因此,我们在目标环境的类化过程中,以insn为基本对象.对于特定源语言和目标机的编译器的构造,可以利用编译类库中的类,通过继承或扩展的方式,只需要添加少量的代码,就可以为之合成一个编译器,从而可大大提高编译器的可维护性和开发效率.