第四章-语法制导的翻译-复习+习题ppt课件.ppt
《第四章-语法制导的翻译-复习+习题ppt课件.ppt》由会员分享,可在线阅读,更多相关《第四章-语法制导的翻译-复习+习题ppt课件.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4.3 L属性定义的自上而下计算属性定义的自上而下计算L属性定义翻译方案消除左递归预测翻译器的设计用综合属性代替继承属性1经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4.3 L属性定义的自上而下计算关于算术表达式的左递归文法相应的翻译模关于算术表达式的左递归文法相应的翻译模式式EE1+TE.val:=E1.val+T.valEE1-T E.val:=E1.val-T.valET E
2、.val:=T.valT(E)T.val:=E.valTnumT.val:=num.valE T RR +T R1R -T R1R T (E)T num2经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 E TR.i:=T.val RE.val:=R.sR +TR1.i:=R.i+T.val R1R.s:=R1.sR -TR1.i:=R.i-T.val R1R.s:=R1.sR R.s:=R.iT (E)T.val:=E.valT numT.val:=num.valE T RR +TR1R -TR1R T (E)
3、T numR.i:R前面子表达式前面子表达式 的值的值R.s:分析完分析完R时子表时子表 达式的值达式的值消除左递归,构造新的翻译模式消除左递归,构造新的翻译模式3经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用ETRnumnum.val=9T.val=9R.i=9-TRnumnum.val=5T.val=5R.i=4+TRnumnum.val=2T.val=2R.i=6 R.s=6R.s=6R.s=6E.val=6E T R.i:=T.val R E.val:=R.s R +T R1.i:=R.i+T.val
4、R1 R.s:=R1.s R -T R1.i:=R.i-T.val R1 R.s:=R1.s R R.s:=R.i T (E)T.val:=E.val T num T.val:=num.val 计算表达式计算表达式9524经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用构造抽象语法树的属性文法定义转化成翻译模式构造抽象语法树的属性文法定义转化成翻译模式 EE1+TE.nptr:=mknode(+,E1.nptr,T.nptr)EE1-TE.nptr:=mknode(-,E1.nptr,T.nptr)ETE.npt
5、r:=T.nptr5经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用E TR.i:=T.nptr RE.nptr:=R.sR +TR1.i:=mknode(+,R.i,T.nptr)R1R.s:=R1.sR -TR1.i:=mknode(,R.i,T.nptr)R1R.s:=R.sR R.s:=R.iT(E )T.nptr:=E.nptrT idT.nptr:=mkleaf(id,id.entry)T num T.nptr:=mkleaf(num,num.val)构造抽象语法树的属性文法定义转化成翻译模式构造抽象
6、语法树的属性文法定义转化成翻译模式 6经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用使用继承属性构造使用继承属性构造a4c的抽象语法树的抽象语法树ETRidTo entry for aidT.nptr-Tnumnum4T.nptrR.i-R+TRidTo entry for cidT.nptrR.i+R.i R.sR.sR.sE.nptrE T R.i:=T.nptr R E.nptr:=R.sR +T R1.i:=mknode(+,R.i,T.nptr)R1 R.s:=R1.sR -T R1.i:=mknod
7、e(,R.i,T.nptr)R1 R.s:=R.sR R.s:=R.iT (E )T.nptr:=E.nptrT id T.nptr:=mkleaf(id,id.entry)T num T.nptr:=mkleaf(num,num.val)7经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用本章使用的两类方法分析树方法 构造分析树属性依赖图确定属性的计算次序边分析边进行属性计算的方法S属性的自下而上计算(边分析边计算)。L属性的自上而下计算(边分析边计算)。L属性的自下而上计算(边分析边计算)。优点:效率高缺点:结
8、点访问次序受分析方法限制。8经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用语语语语义义义义规规规规则则则则的的的的两两两两种种种种描描描描述述述述方方方方法法法法:语语语语法法法法制制制制导导导导的的的的定定定定义义义义和和和和翻翻翻翻译译译译方方方方案。案。案。案。设设设设计计计计简简简简单单单单问问问问题题题题的的的的语语语语法法法法制制制制导导导导定定定定义义义义和和和和翻翻翻翻译译译译方方方方案案案案,这这这这是是是是本本本本章章章章的重点和难点。的重点和难点。的重点和难点。的重点和难点。S S属性的自
9、下而上计算(边分析边计算)属性的自下而上计算(边分析边计算)属性的自下而上计算(边分析边计算)属性的自下而上计算(边分析边计算)。L L属性的自上而下计算(边分析边计算)属性的自上而下计算(边分析边计算)属性的自上而下计算(边分析边计算)属性的自上而下计算(边分析边计算)。L L属性的自下而上计算(边分析边计算)属性的自下而上计算(边分析边计算)属性的自下而上计算(边分析边计算)属性的自下而上计算(边分析边计算)。语法制导翻译 要 点9经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用例 题 1为文法为文法S (L
10、)|aL L,S|S写一个语法制导定义,它输出括号的对数。写一个语法制导定义,它输出括号的对数。首先,分析问题首先,分析问题首先,分析问题首先,分析问题(1 1)需要定义哪些属性值)需要定义哪些属性值)需要定义哪些属性值)需要定义哪些属性值 属性属性属性属性numnum,表示相应符号中括号的对数,表示相应符号中括号的对数,表示相应符号中括号的对数,表示相应符号中括号的对数(2 2)属性值为哪些符号定义?)属性值为哪些符号定义?)属性值为哪些符号定义?)属性值为哪些符号定义?L,SL,S(3 3)numnum属性属于综合属性还是继承属性?属性属于综合属性还是继承属性?属性属于综合属性还是继承属性
11、?属性属于综合属性还是继承属性?综合属性!因为产生式左部综合属性!因为产生式左部综合属性!因为产生式左部综合属性!因为产生式左部符号的符号的符号的符号的numnum值要依赖于产生值要依赖于产生值要依赖于产生值要依赖于产生式右部每个符号的属性值式右部每个符号的属性值式右部每个符号的属性值式右部每个符号的属性值10经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用例 题 1为文法为文法S (L)|aL L,S|S写一个语法制导定义,它输出括号的对数。写一个语法制导定义,它输出括号的对数。S S S Sprintprin
12、t(S S.numnum)S S (L L)S S.numnum:=:=L L.numnum+1+1S S a aS S.numnum:=0:=0L L L L1 1,S SL L.numnum:=:=L L1 1.numnum+S S.numnumL L S SL L.numnum:=:=S S.numnum 11经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用为文法为文法为文法为文法S S (L L)|)|a aL L L L,S S|S S写一个语法制导定义,它输出括号的对数。写一个语法制导定义,它输出括号
13、的对数。写一个语法制导定义,它输出括号的对数。写一个语法制导定义,它输出括号的对数。构建翻译方案对应的代码段:构建翻译方案对应的代码段:构建翻译方案对应的代码段:构建翻译方案对应的代码段:S S S Sprintprint(valtopvaltop)S S (L L)S S.numnum:=:=L L.numnum+1 +1 S S a aS S.numnum:=0 :=0 L L L L1 1,S SL L.numnum:=:=L L1 1.numnum+S S.num num L L S SL L.numnum:=:=S S.numnum 栈栈栈栈 state valstate val例
14、题 1.S SS S.numnum.toptop12经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用为文法为文法为文法为文法S S (L L)|)|a aL L L L,S S|S S写一个语法制导定义,它输出括号的对数。写一个语法制导定义,它输出括号的对数。写一个语法制导定义,它输出括号的对数。写一个语法制导定义,它输出括号的对数。S S S Sprintprint(valtopvaltop)S S (L L)valtop-2:=valtop-1valtop-2:=valtop-1S S a aS S.numn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 语法 制导 翻译 复习 习题 ppt 课件
限制150内