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