语法制导翻译-.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

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

;属性计算与分析方法之间的关系

属性的计算次序受分析方法所限定的分析树结点建立次序的限制。

分析树的结点是自左向右生成。

所以,仅当属性信息是自左向右流动时,才有可能在分析的同时完成属性计算。;4.3L属性定义的自上而下计算;4.3.1L属性定义

如果每个产生式A?X1X2…Xn的每条语义规则计算的属性是A的综合属性;或者是Xj的继承属性,1?j?n,但它仅依赖:

该产生式中Xj左边符号X1,X2,…,Xj-1的属性;

A的继承属性。

S属性定义属于L属性定义。;例非L属性;另一例非L属性的语法制导定义;L属性定义的例子:变量类型声明的语法制导定义;4.3L属性定义的自上而下计算;4.3L属性定义的自上而下计算;4.3.2翻译方案;4.3L属性定义的自上而下计算;4.3.2翻译方案

例把有加和减的中缀表达式翻译成后缀表达式

如果输入是8+5?2,则输出是85+2?。

E?TR

R?addopT{print(addop.lexeme)}R1|?

T?num{print(num.val)}

E?TR?num{print(8)}R

?num{print(8)}addopT{print(+)}R

?num{print(8)}addopnum{print(5)}{print(+)}R

…{print(8)}{print(5)}{print(+)}addopT{print(?)}R

…{print(8)}{print(5)}{print(+)}{print(2)}{print(?)};翻译模式示例:把带加号和减号的中缀表达式翻译成相应的后缀表达式;建立翻译模式;建立翻译模式;;例数学排版语言EQN

Esub1.val

S?B

B?B1B2

B?B1subB2

B?text;例数学排版语言EQN

Esub1.val;例数学排版语言EQN

S? {B.ps:=10}

B {S.ht:=B.ht}

?B? {B1.ps:=B.ps}

B1 {B2.ps:=B.ps}

B2 {B.ht:=max(B1.ht,B2.ht)}

?B? {B1.ps:=B.ps}

B1

sub {B2.ps:=shrink(B.ps)}

B2 {B.ht:=disp(B1.ht,B2.ht)}

?B?text {B.ht:=text.h?B.ps};4.3L属性定义的自上而下计算;例左递归的消除引起继承属性;E?T {R.i:=T.nptr} T+T+T+…

R {E.nptr:=R.s}

R?+

T {R1.i:=mknode(‘+’,R.i,T.nptr)}

R1 {R.s:=R1.s}

R?? {R.s:=R.i}

T?F {W.i:=F.nptr}

W {T.nptr:=W.s}

W?*

F {W1.i:=mknode(‘*’,W.i,F.nptr)}

W1 {W.s:=W1.s}

W?? {W.s:=W.i};T;A?A1Y{A.a:=g(A1.a,Y.y)}

A?X{A.a:=f(X.x)};A?A1Y{A.a:=g(A1.a,Y.y)}

A?X{A.a:=f(X.x)};A?X{R.i:=f(X.x)}

R{A.a:=R.s}

R?Y{R1.i:=g(R.i,Y.y)}

R1{R.s:=R1.s}

R??{R.s:=R.i};本讲纲要;设计递归下降翻译器的方法;设计递归下降翻译器的方法;设计递归下降翻译器的方法;4.3.3预测翻译器的设计

目标:为文法计算其中的L属性值

方法:把预测分析器的构造方法推广到翻译方案的实现

产生式R?+TR|?的分析过

您可能关注的文档

文档评论(0)

192****6377 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档