编译原理第8章..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文档。上传文档
查看更多
第8章 语法制导翻译和中间代码生成 属性分为两种:继承属性和综合属性. 综合属性:在语法树中,一个结点的综合属性由该结点 的子结点的属性值确定。它的计算规则由底 向上. 继承属性:在语法树中,一个结点的继承属性由该结点的 父结点/兄弟结点的属性确定。即它 的计算规 则由顶向下。 例如定义表达式值的属性文法, E.val是一个综合属性的例子: E?E1+E2 {E.val := E1.val +E2.val} E?(E1) {E.val := E1.val } E?n {E.val := n.lex} 考虑句子2+(3+1)的求值顺序,将2+(3+1)的语法树结点改为有附加属性的结点(这样的树称为带注释的语法树): E.val=6 E.val=2 + E.val=4 n.lex=2 ( E.val=4 ) E.val=3 + E.val=1 n.lex=3 n.lex=1 又例:一个简单台式计算器的定义 综合属性val 3*5+4的带注释的分析树 只使用综合属性. 继承属性 一个结点的继承属性值是由此结点的父结点和/或兄弟结点的某些属性来决定的。例,添加标识符类型的语义描述: 继承属性type 实际上,在一个表达式中可能出现各种不同 类型的变量,而不象前面假定为同一类型。 因此,上例应改为P163 图8.10 的形式。 8.3 布尔表达式的翻译 程序设计语言中的布尔表达式有两个作用。 一是计算逻辑值 更多的情况是二:用做改变控制流语句中的 条件表达式,如在if-then,if-then-else, 或是while-do语句中那样。 布尔表达式是由布尔算符and,or和not施于布尔变量或关系表达式而成。 即布尔表达式的形式为E1 rop E2,其中E1和E2都是算术表达式,rop是关系符,如=,<,=,=,≠等等。 布尔表达式的翻译方法 通常,计算布尔表达式的值有两种办法: 第一种办法,如同计算算术表达式一样,步步 计算出各部分的真假值,最后计算出整个表 达式的值。 语法制导定义(属性文法) E.p 是语法结构树指针 四元式和三元式的主要不同在于,四元式对中间结果的引用必须通过给定的名字,而三元式是通过产生中间结果的三元式编号。也就是说,四元式之间的联系是通过临时变量实现的。 有时,为了更直观,也把四元式的形式写成简单赋值形式或更易理解的形式。比如把上述四元式序列写成:    (1)t1∶=b*c  (2)t2∶=b*d  (3)t3∶=t1+t2  (4)a∶=t3    把(jump,-,-,L)写成goto L 把(jrop,B,C,L)写成if B rop C goto L 请将表达式-(a+b)*(c+d)-(a+b)分别表示成三元式、间接三元式和四元式序列。 三元式   (1) (+ a, b)   (2) (+ c, d)   (3) (* (1), (2))   (4) (- (3), /)   (5) (+ a, b)   (6) (- (4), (5))  间接三元式 间接三元式序列   间接码表   (1) (+ a, b)     (1)   (2) (+ c, d)     (2)   (3) (* (1), (2))   (3)   (4) (- (3), /)     (4)   (5) (- (4), (1))   (1)             (5) 四元式   (1) (+, a, b, t1)   (2) (+, c, d, t2)   (3) (*, t1, t2, t3)   (4) (-, t3, /, t4)   (5) (+, a, b, t5)   (6) (-, t4, t5, t6) 采用语法制导翻译思想,表达式E的值的描述如下:   产生式       语义动作   (0

文档评论(0)

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

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

1亿VIP精品文档

相关文档