第6章 语法制导翻译技术
高级语言源程序经过词法分析、语法分析之后,假如没有错误,说明该源程序在书写上是正确,符合语言语法规则。词法分析和语法分析只检验了源程序拼写、结构是否正确,不过对程序内部逻辑含义并未考虑。语法上正确并不能确保其语义是正确。要判断语义是否正确,就必须依靠语义分析。
这一章,我们所要介绍是当前大多数编译程序普遍采取一个技术,即语法制导翻译技术。在这种方法中,我们能够用一个或多个子程序(称为语义动作)来完成产生式语义分析,并把这些语义动作插入到产生式中对应位置,从而形成翻译文法。当在语法分析过程中使用该产生式时,就能够在适当时机调用这些动作,完成所需要翻译;深入,可依据产生式所包含语义,分析文法中每个符号语义,并将这些语义以属性形式附加到对应符号上;再依据产生式所包含语义,给出符号间属性求值规则,从而形成所谓属性翻译文法。这么,当在语法分析中使用该产生式时,可依据属性求值规则对对应属性进行求值,从而完成翻译。
6.1 翻译文法
翻译文法是上下文无关文法推广,是在描述语言文法规则右部适当位置加入语义动作得到。为了区分文法符号与语义动作,在文法表示中,将代表语义动 ...


雷达卡


京公网安备 11010802022788号







