编译原理张晶语法制导翻译和中间代码生成图文.pptxVIP

编译原理张晶语法制导翻译和中间代码生成图文.pptx

  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文档。上传文档
查看更多
概述;属性文法 ; 操作语义;公理语义; ;指称语义; ; Valuation[101] 表示把Valuation施用于101 Valuation[N] ------ 把它施用于N 定义: Valuation(用四个方程)因为有四个形式numeral Valuation[0] ?0 Valuation[1] ?1 Valuation[N0] ?2?Valuation [N] Valuation[N1] ?2?Valuation [N]+1 所以: Valuation[110]=2 ? Valuation[11] = 2 ? (2 ? Valuation[1]+1) =2 ?(2 ? 1+1) =6 ;属性文法和语法制导翻译 ;属性文法;属性有两种 继承的和综合的属性; 在一个属性文法中,对应于每个产生式A??都有一套与之相关联的语义规则,每条规则的形式为b:=f(c1,c2…ck) 这里,f是一个函数,而且或者 (1)b是A的一个综合属性并且c1,c2…ck是产生式右边文法符号的属性;或者 (2)b是产生式右边某个文法符号的一个继承属性并且c1,c2…ck是A或产生式右边任何文法符号的属性。 在两种情况下,我们都说属性b依赖于属性c1,c2…ck 。 ; ;设表达式为3*5+4,则语义动作打印数值19;继承属性; ;例7.3;var x;var y;x:=e;;语法制导的翻译;语法制导的翻译; ; ;确定输入a+a?a的输出: (E,E)?(E+T,ET+) ?(T+T,TT+) ?(F+T,FT+) ?(a+T,aT+) ?(a+T?F,aFF?+) ?(a+F?F,aFF?+) ?(a+a?F,aaF?+) ?(a+a?a,aaa?+); ; ;语义制导翻译中的规则A??,?;语法制导翻译实现;依赖图;依赖图----例7.2 ;例7.2 Real id1,id2,id3分析树的依赖图; 依赖图中的结点由数字来标识。从代表T.type的结点4有一条有向边连到代表L.in的结点5,因为根据产生式E→TL的语义规则L1.in=L.in,可知L1.in依赖于L.in,所以有两条向下的有向边分别进入结点7和9。每一个与L产生式有关的语义规则addtype(id. Entry, L.in)都产生一个虚属性,结点 6、8和10都是为这些虚属性构造的。 ;良定义的属性文法。 ;属性的计算顺序;属性文法说明的翻译是很精确的。最基本的文法用于建立输入符号串的分析树。依赖图如上面讨论的那样建立。从依赖图的拓扑排序中,我们可以得到计算语义规则的顺序。用??个顺序来计算语义规则就得到输入符号串的翻译。 例7.2Real id1,id2,id3分析树的依赖图 每一条边都是从序号较低的结点指向序号较高的结点。历此,依赖图的一个拓扑排序可以从低序号到高序号顺序写出。从这个拓扑排序中我们可以得到下列程序,用an来代表依赖图中与序号n的结点有关的属性: a4: = real a5: = a4 addtype (id3, entry, a5); a7: = a5; addtype (id2,entry, a7) a9: = a7 addtype (id1,entry, a9) 这些语义规则的计算将把real类型填入到每个标识符对应的符号表项中。; 属性计算方法;例:定义定点二进制数的CFG:; 非终结符N表示整个二进制数的数值,综合属性v附加在N上:N v 非终结符B 表示一个二进制数字,它有自己的值v ,但该值分配给N的值与它的位置有关,是与2成比例,比例因子f是从S继承的属性,所以:B v f 非终结符S 表示一个二进制数字串,它也有值,但该值与串的位置有关,与f有关与串的长度l有关: S f v l ;构造数值的属性断言可以如下:; N ?v ?S ? i1 ?

文档评论(0)

guosetianxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档