第四章-语法制导的翻译-复习+习题ppt课件.ppt

第四章-语法制导的翻译-复习+习题ppt课件.ppt

ID:58578737

大小:369.50 KB

页数:28页

时间:2020-10-20

第四章-语法制导的翻译-复习+习题ppt课件.ppt_第1页
第四章-语法制导的翻译-复习+习题ppt课件.ppt_第2页
第四章-语法制导的翻译-复习+习题ppt课件.ppt_第3页
第四章-语法制导的翻译-复习+习题ppt课件.ppt_第4页
第四章-语法制导的翻译-复习+习题ppt课件.ppt_第5页
资源描述:

《第四章-语法制导的翻译-复习+习题ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4.3L属性定义的自上而下计算L属性定义翻译方案消除左递归预测翻译器的设计用综合属性代替继承属性14.3L属性定义的自上而下计算关于算术表达式的左递归文法相应的翻译模式E→E1+T{E.val:=E1.val+T.val}E→E1-T{E.val:=E1.val-T.val}E→T{E.val:=T.val}T→(E){T.val:=E.val}T→num{T.val:=num.val}E→TRR→+TR1R→-TR1R→T→(E)T→num2E→T{R.i:=T.val}R{E.val:=R.s}R→+T{R1.i:=R.i+T.val}R1{R

2、.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}E→TRR→+TR1R→-TR1R→T→(E)T→numR.i:R前面子表达式的值R.s:分析完R时子表达式的值消除左递归,构造新的翻译模式3ETRnumnum.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.

3、i:=T.val}R{E.val:=R.s}R→+T{R1.i:=R.i+T.val}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}计算表达式9-5+24构造抽象语法树的属性文法定义转化成翻译模式E→E1+T{E.nptr:=mknode(‘+’,E1.nptr,T.nptr)}E→E1-T{E.nptr:=mknode(‘-’,E1.nptr,T.nptr)}E→T{E.nptr:=T.nptr}

4、5E→T{R.i:=T.nptr}R{E.nptr:=R.s}R→+T{R1.i:=mknode(‘+’,R.i,T.nptr)}R1{R.s:=R1.s}R→-T{R1.i:=mknode(‘-’,R.i,T.nptr)}R1{R.s:=R.s}R→{R.s:=R.i}T→(E){T.nptr:=E.nptr}T→id{T.nptr:=mkleaf(id,id.entry)}T→num{T.nptr:=mkleaf(num,num.val)}构造抽象语法树的属性文法定义转化成翻译模式6使用继承属性构造a-4+c的抽象语法树ETRidToentry

5、foraidT.nptr-Tnumnum4T.nptrR.i-R+TRidToentryforcidT.nptrR.i+R.iR.sR.sR.sE.nptrE→T{R.i:=T.nptr}R{E.nptr:=R.s}R→+T{R1.i:=mknode(‘+’,R.i,T.nptr)}R1{R.s:=R1.s}R→-T{R1.i:=mknode(‘-’,R.i,T.nptr)}R1{R.s:=R.s}R→{R.s:=R.i}T→(E){T.nptr:=E.nptr}T→id{T.nptr:=mkleaf(id,id.entry)}T→num{T.n

6、ptr:=mkleaf(num,num.val)}7本章使用的两类方法分析树方法构造分析树属性依赖图确定属性的计算次序边分析边进行属性计算的方法S属性的自下而上计算(边分析边计算)。L属性的自上而下计算(边分析边计算)。L属性的自下而上计算(边分析边计算)。优点:效率高缺点:结点访问次序受分析方法限制。8语义规则的两种描述方法:语法制导的定义和翻译方案。设计简单问题的语法制导定义和翻译方案,这是本章的重点和难点。S属性的自下而上计算(边分析边计算)。L属性的自上而下计算(边分析边计算)。L属性的自下而上计算(边分析边计算)。语法制导翻译要点9例题

7、1为文法S(L)

8、aLL,S

9、S写一个语法制导定义,它输出括号的对数。首先,分析问题(1)需要定义哪些属性值属性num,表示相应符号中括号的对数(2)属性值为哪些符号定义?L,S(3)num属性属于综合属性还是继承属性?综合属性!因为产生式左部符号的num值要依赖于产生式右部每个符号的属性值10例题1为文法S(L)

10、aLL,S

11、S写一个语法制导定义,它输出括号的对数。SSprint(S.num)S(L)S.num:=L.num+1SaS.num:=0LL1,SL.num:=L1.num+S.numLSL.num:=S.num11为

12、文法S(L)

13、aLL,S

14、S写一个语法制导定义,它输出括号的对数。构建翻译方案对应的代码段:SSpr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。