正在加载图片...
该算法可以和自上而下预测分析的过程对应。因此,基于LL(1)文法的L 属性定义可以采用这种方法进行翻译。 7.翻译模式( Translation Scheme)形式上类似于属性文法,但允许由{}括起来 的语义规则集合(即语义动作)出现在产生式右端的任何位置。这样做的好处是 可以显式地表达动作和属性计算的次序,而在前述的语法制导定义不体现计算次 序。 在设计翻译模式时,必须作某些限制,以确保毎个属性值在被访问到的时候 已经存在。我们仅讨论两类受限的翻译模式 一是受S属性文法的启示,对于仅需要综合属性的情形,只要创建一个语 义规则集合,放在相应产生式右端的末尾,把属性的赋值规则加入其中即可。 二是受L-属性文法的启示,对于即包含继承属性又包含综合属性的情形, 必须注意1)产生式右端某个符号的继承属性的计算必须位于该符号之前12) 每个计算规则不访问位于它右边符号的综合属性;(3)产生式左部非终结符的综 合属性的计算只能在所用到的属性都已计算岀来之后迸行通常放在相应产生式 右端的末尾。 8.继承属性的自下而上计算。本课程主要涉及到三种技术:(1)从翻译模 式中去掉嵌入在产生式中间的动作yacc的处理方法);(2)分析栈中的继承属性 处理;(3)用综合属性代替继承属性。对于(1)(3),通过教材176页82.4 中的例子理解即可。对于(2),要点是复写规则( copy rules)的处理及其应用, 简述如下 自下而上翻译程序根据产生式A→XY的归约过程中,假设ⅹ的综合属性该算法可以和自上而下预测分析的过程对应。因此,基于 LL(1)文法的 L- 属性定义可以采用这种方法进行翻译。 7. 翻译模式(Translation Scheme)形式上类似于属性文法,但允许由{}括起来 的语义规则集合(即语义动作)出现在产生式右端的任何位置。这样做的好处是 可以显式地表达动作和属性计算的次序,而在前述的语法制导定义不体现计算次 序。 在设计翻译模式时,必须作某些限制,以确保每个属性值在被访问到的时候 已经存在。我们仅讨论两类受限的翻译模式: 一是受 S-属性文法的启示,对于仅需要综合属性的情形,只要创建一个语 义规则集合,放在相应产生式右端的末尾,把属性的赋值规则加入其中即可。 二是受 L-属性文法的启示,对于即包含继承属性又包含综合属性的情形, 必须注意:(1)产生式右端某个符号的继承属性的计算必须位于该符号之前;(2) 每个计算规则不访问位于它右边符号的综合属性;(3)产生式左部非终结符的综 合属性的计算只能在所用到的属性都已计算出来之后进行,通常放在相应产生式 右端的末尾。 8.继承属性的自下而上计算。本课程主要涉及到三种技术:(1)从翻译模 式中去掉嵌入在产生式中间的动作(yacc 的处理方法);(2)分析栈中的继承属性 处理;(3)用综合属性代替继承属性。对于(1)、(3),通过教材 176 页 8.2.4 中的例子理解即可。对于(2),要点是复写规则(copy rules)的处理及其应用, 简述如下: 自下而上翻译程序根据产生式 A→XY 的归约过程中,假设 X 的综合属性
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有