8.8 Yacc和语法制导翻译 Yacc作为语法分析程序的自动构造工具,在第7章中已经讨论过其原理。Yacc采用语法制导翻译的方法获取翻译和语义处理信息,成为编译程序的生成工具。 语法制导翻译指的是编译实现的方法--源语言翻译是要由语法分析程序(parser)驱动的。换言之,分析过程和分析树用于制导(direct)语义分析和源程序的翻译。常用的方法是扩充惯用的文法,加上控制语义分析和翻译的信息,这样的文法称作属性文法。 将每个文法符号加上相联的属性以描述它的性质。一个属性有一个名字和一个相联的属性值--这个属性值可以是一个类型,一个存储位置或者一个分配的寄存器等等,只要是需要的属性都可以定义其属性值。 |