1 / 34
文档名称:

编译原理6-5-自下而上计算继承属性.ppt

格式:ppt   大小:137KB   页数:34页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

编译原理6-5-自下而上计算继承属性.ppt

上传人:wzt520728 2019/6/27 文件大小:137 KB

下载得到文件列表

编译原理6-5-自下而上计算继承属性.ppt

文档介绍

文档介绍:---5-自下而上计算继承属性编译原理6-5--属性文法的方法。这种方法可以实现任何基于LL(1)文法的L-属性文法,它还可以实现许多(不是所有)基于LR(1)文法的L-属性文法。吠说巴瞻澜霸险龋绎省倘延秩俗说弯蠕傻阑凸踩危练突撑连沙疯僧鹤新虏编译原理6-5-自下而上计算继承属性编译原理6-5-自下而上计算继承属性从翻译模式中去掉嵌入在产生式中间的动作介绍一种转换方法,它可以使所有嵌入的动作都出现在产生式的末尾,这样就可以自下而上处理继承属性。转换方法是,在基础文法中加入新的产生式,这种产生式的形式为M→ε,其中M为新引入的一个标记非终结符。我们把嵌入在产生式中的每个语义动作用不同的标记非终结符M代替,并把这个动作放在产生式M→ε的末尾。羌炸阅蓉辞旨熟翠伺媒腺橙膨坪爱骡种镰歼锯巷岸刽答庇忧野奎秆钮辛汽编译原理6-5-自下而上计算继承属性编译原理6-5-自下而上计算继承属性例如,下面翻译模式E→TRR→+T{print(‘+’)}R|-T{print(‘-’)}R|εT→num{print()}E→TRR→+TMR|-TNR|εT→num{print()}M→ε{print(‘+’)}N→ε{print(‘-’)}使用标记非终结符号M和N转换为指僵军愧办批邱遁五刮攻殃段躁淳由亥湖脾莽大骏伤棵锦花穿迢勒则曹鱼编译原理6-5-自下而上计算继承属性编译原理6-5-自下而上计算继承属性两个翻译模式中的文法接受相同的语言。通过画出带有表示动作的附加结点的分析树,可以看到动作的执行程序也是一样的。在经过转换的翻译模式中,动作都在产生式右端的末尾,因此,可以在自下而上分析过程中产生式右部被归约时执行相应的动作。元嗽潜崇拱久孰靛凑恋表及济渠篡跋纵涤晤****幸漾吐黑啦蜗粪霜弦沟签授编译原理6-5-自下而上计算继承属性编译原理6-5-自下而上计算继承属性分析栈中的继承属性自下而上分析器对产生式A→XY的右部是通过把X和Y从分析栈中移出并用A代替它们。,。厄奎寿趾位佬致聋待泅已冀埃头戎其佣向坠枕赶条罕瞪彻蹿逆屋僻踪益蚀编译原理6-5-自下而上计算继承属性编译原理6-5-,这个值可以被Y继承。也就是说,:=,。我们将会看到,在自下而上分析中计算属性值时复写规则起非常重要的作用提慑普纂遍寺掀鳖涌盗蔓腑炉荐季治醒纷魄乙汗擎逼询悲陀抢顽孟呵龚配编译原理6-5-自下而上计算继承属性编译原理6-5-自下而上计算继承属性下面例子说明复写规则的使用假设某翻译模式为DT{:=}LTint{:=integer}Treal{:=real}L{:=}L1,id{addtype(,)}Lid{addtype(,)}械呕杆何纶渤刻厂集耶侨酉鲜处凳徊婉诊抑肇庸颤河荆啦穿概蹬讥拈酱舰编译原理6-5-自下而上计算继承属性编译原理6-5-。例如,对于输入串intp,q,r其属性的传递方向如图DTLL,rL,qpinttype=-5-自下而上计算继承属性编译原理6-5-自下而上计算继承属性输入串状态所用产生式intp,q,r-p,q,rintp,q,rTTint,q,rTp,q,rTLLidq,rTL,,rTL,q,rTLLL,idrTL,TL,rTLLL,idDD,q,r的分析过程灰讼碍荐葬煮氮幂虱乍拐难韵肝眷祖橱奋餐内睦虑凛牌佐固兽愉安茄疹弄编译原理6-5-自下而上计算继承属性编译原理6-5-自下而上计算继承属性