网站大量收购闲置独家精品文档,联系QQ:2885784924

编译原理精品教学课件(华南理工大学)第七章语法制导的语义计算-3.pptVIP

编译原理精品教学课件(华南理工大学)第七章语法制导的语义计算-3.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在语义分析同时产生中间代码,在这种模式下,语义分析的主要功能如下: 语义审查 在扫描声明部分时构造标识符的符号表 在扫描语句部分时产生中间代码 * 使用属性文法为工具来说明程序设计语言的语义。 * (Dependency graph)(Topological sort) * 可以包含综合属性,也可以包含继承属性 产生式右端某文法符号的继承属性的计算只取决 于该符号左边文法符号的属性 (对于产生式左边 文法符号,只能是继承属性) * 继承属性的计算通过先根遍历,或者结合先根遍历和中根遍历语法树 procedure PreEval(T:treenode); begin for each child C of T do compute all inherited attributes of C; PreEval(C); end; 7.1.2 遍历分析树进行语义计算 产生式 N ? S1.S2 S ? S1B S ? B B ? 0 B ? 1 语义动作 { N.v := S1.v+S2.v; S1.f :=1; S2.f :=2-S2.l } { S1.f := 2*S.f; B.f : =S.f; S.v := S1.v+B.v; S.l := S1.l +1 } { S.l := 1 ; S.v := B.v ; B.f := S.f } { B.v := 0 } { B.v := B.f } 例:该属性文法可用于将二进制无符号小数转化为十进制小数 考虑输入串 10.01 的语义计算过程 步骤一 构造输入串10.01的语法分析树 S S N S B 0 . B 1 S B 1 B 0 7.1.2 遍历分析树进行语义计算 步骤二 为分析树中所有结点的每个属性建立一个 依赖图中的结点,并给定一个标记序号 S S N S B 0 . B 1 S B 1 B 0 1:v 4:v 3:f 2:l 5:l 6:f 7:v 8:f 9:v 10:f 11:v 18:f 19:v 15:l 16:f 17:v 12:l 13:f 14:v 20:f 21:v 7.1.2 遍历分析树进行语义计算 步骤三 根据语义动作,建立依赖图中的有向边 S S N S B 0 . B 1 S B 1 B 0 1:v 4:v 3:f 2:l 5:l 6:f 7:v 8:f 9:v 10:f 11:v 18:f 19:v 15:l 16:f 17:v 12:l 13:f 14:v 20:f 21:v N ? S1.S2 { N.v := S1.v+S2.v } N ? S1.S2 {S2.f :=2-S2.l } S ? S1B { S.l := S1.l +1 } S ? S1B { S.v := S1.v+B.v } B ? 1 { B.v := B.f } S ? S1B { S1.f := 2S.f; B.f : =S.f } S ? B { S.v := B.v } S ? B { B.f := S.f } 步骤四 该依赖图是无圈的,因此存在拓扑排序. 依任何一个拓扑排序,都能够顺利完成 属性值的计算 如下是一种可能的计算次序: 3,5,2,6,10,8,9,7,11,4,15,12,13,16,20,18,21,19,17,14,1 S S N S B 0 . B 1 S B 1 B 0 1:v 4:v 3:f 2:l 5:l 6:f 7:v 8:f 9:v 10:f 11:v 18:f 19:v 15:l 16:f 17:v 12:l 13:f 14:v 20:f 21:v 步骤五 依计算次序,根据语义动作求出各结点对应的属性值 对如下结点次序进行计算: 3,5,2,6,10,8,9,7,11,4,15,12,13,16,20,18,21,19,17,14,1 S S N S B 0 . B 1 S B 1 B 0 1:v 4:v 3:f 2:l 5:l 6:f 7:v 8:f 9:v 10:f 11:v 18:f 19:v 15:l 16:f 17:v 12:l 13:f 14:v 20:f 21:v 1 1 2 2 1 2 2 2 0 2 1 2 0.25 0.5 0.25 0.5 0.25 0 0 0.25 2.25 语法分析树中各结点属性值的计算过程被称为对语 法分析树的标注 用带标注的语法分析树表示属性值的计算结果 带标注的语法分析树 S S N S B 0 . B 1 S B 1 B 0 f=1

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档