人们期望能找到这样一种中间语言,它既能适用绝大多数高级程序设计语言,也能适用各种计算机硬件的结构,这样只要把各种高级语言都翻译成一种中间语言,而再把中间语言翻译成各种机器的目标语言(汇编语言或机器语言)。前者称分析程序,后者称代码生成程序,那么对一个新的高级语言只要写出它的分析程序,则可用不同机器的代码生成程序,翻译成各种机器的目标代码,这也就相当在每种机器上都有了这样一种新的语言。对于一个新的计算机来说,只要再写出中间语言翻译成该机器语言的代码生成程序,那么所有的语言和其应用程序都可应用于这种新机器。例如:若用过去传统的方法,有m种语言,要在n种计算机上实现,则需要编写m×n个编译程序,而若用上述方法选定的通用中间代码实现则只要m+n个编译程序就可实现。如图12.3和图12.4所示。
|