语法制导翻译

王朝百科·作者佚名  2010-08-17
窄屏简体版  字體: |||超大  

基于属性文法的处理过程,对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。

翻译的任务:首先是语义分析和正确性检查,若正确,则翻译成中间代码或目标代码。

使用的方法称作语法制导翻译。基本思想是,根据翻译的需要设置文法符号的属性,以描述语法结构的语义。例如,一个变量的属性有类型,层次,存储地址等。表达式的属性有类型,值等。属性值的计算和产生式相联系。随着语法分析的进行,执行属性值的计算,完成语义分析和翻译的任务。

属性值根据计算的依赖关系分成不相交的两类:综合属性(synthesized attribute)和继承属性(inherited attribute)。在分析树中,一个结点的综合属性值是从其子结点的属性值计算出来的;而一个结点的继承属性值是由该结点兄弟结点和父结点的属性值计算出来的。一般来说,语义翻译可按图5.1 的流程处理。

5.1

实际上,编译中语义翻译的实现并不是按图5.1 的流程处理的;而是随语法分析的进展,识别出一个语法结构,就对它的语义进行分析和翻译。

要求:随着语法分析,分析树逐步被构造出来,进展到每一步,定义的文法符号的属性值是可以计算出来的。一个重要的属性定义类称作“L—属性”定义,满足上述要求。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航