编译原理:语法制导翻译

一,语法制导定义

属性文法

是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”(称为属性)

文法表示

三元组:A=(G,V,F)

G:是一个上下文无关文法。

V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连,这些属性代表与文法符号相关信息,如它的类型,值,代码序列,符号表内容等等。属性与变量一样,可以进行计算和传递。属性加工的过程即语义处理的过程。

F:关于属性的属性断言或一组属性的计算规则(称为语义规则)。断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性。

属性分类

综合属性:用于“自下而上”传递信息。

在语法树上,一个结点的综合属性的值,由其子节点的属性值确定。

编译原理:语法制导翻译_第1张图片编译原理:语法制导翻译_第2张图片

继承属性:用于“自上而下”传递信息

在语法树上,一个结点的继承属性由此结点的父节点和/或兄弟结点的某些属性值确定。

编译原理:语法制导翻译_第3张图片编译原理:语法制导翻译_第4张图片

终结符只有综合属性,它由词法分析器提供。

非终结符既可有综合属性也可有继承属性,但文法开始符号的继承属性作为属性计算前的初始值。

二,S属性定义的自下而上计算

语法树:语法分析树的浓缩表示,算符和关键字是作为内部节点

语法制导翻译可以基于分析树,也可以基于语法树

编译原理:语法制导翻译_第5张图片

构造语法树的语法制导定义

编译原理:语法制导翻译_第6张图片

S属性的自下而上

n是结束符号

编译原理:语法制导翻译_第7张图片编译原理:语法制导翻译_第8张图片

三,L属性定义的自上而下计算

翻译方案:语法制导翻译翻译方案的语义动作放在{}内,且可以插到产生式的任何地方

编译原理:语法制导翻译_第9张图片

 

你可能感兴趣的:(计算机网络/编译原理)