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

第五章语法制导翻译和中间代码第4章主要内容回顾58.pptVIP

第五章语法制导翻译和中间代码第4章主要内容回顾58.ppt

  1. 1、本文档共47页,可阅读全部内容。
  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文档。上传文档
查看更多
第五章:语法制导翻译和中间代码 第4章主要内容回顾 自顶向下语法分析思想 自顶向下语法分析方法: LL(1)分析方法 递归下降分析方法 自底向上语法分析思想 自底向上语法分析方法: 算符优先分析方法 LR分析方法 第五章 语法制导翻译和 中间代码生成 语法分析概述 属性文法 中间代码 赋值语句的翻译 布尔表达式的翻译 控制流语句的翻译 5.1 语义分析概述 语义分析的任务:语义分析的输入是语法分析的输出(分析树),输出是中间代码,但同时它还完成了很多语义处理工作。 语义检查:如,类型、运算、维数、越界等。 语义处理:如,变量的存储分配、表达式的求值、语句的翻译(中间代码的生成)等。 总目标:生成等价的中间代码。 语义分析的主流技术:语法制导翻译技术。 语法分析的处理方法: 对应每一个产生式编制一个语义子程序,当一个产生式获得匹配时,调用相应的语义子程序实现语义检查与翻译。(语法制导翻译) 在产生式的右部的适当位置,插入相应的语义动作,按照分析的进程,执行遇到的语义动作。(翻译方案) 5.2 属性文法 属性:对文法的每一个符号,引进一些属性,这些属性代表与文法符号相关的信息,例如它的类型、值、代码序列、符号表内容等。与这些属性相关的信息,即属性值,可以在语法分析过程中计算和传递。属性加工的过程即语义的处理过程。属性分为综合属性和继承属性。N.t 综合属性:从语法分析树的角度来看,如果一个结点的某一属性,其值由子结点的属性值来计算,则称该属性为综合属性。其形式定义为:设 A→X1X2……Xn 为一个产生式,则A的综合属性A.s可描述为:A.s=f(c1,c2,……,ck),这里c1,c2,……,ck是X1,X2,……,Xn的属性。适合自底向上分析(即归约分析)。 5.2 属性文法 继承属性:在语法树分析中,若一个结点的某个属性值由该结点的兄弟和或父结点的属性的值来计算,则此结点的属性称为继承属性。其形式定义可描述为:设A→X1X2……Xn为一个产生式,则Xi 继承属性B.in可定义为:B.in=f(c1,c2,……,ck),这里,c1,c2,……,ck是A, X1,X2,……,Xi-1的属性。适合自顶向下的分析。 注意:①终结符号只有综合属性,他们由词法分析器提供。 ②非终结符号既有综合属性也可有继承属性,文法的开始符号没有继承属性,除非另外加以说明。 5.2 属性文法 属性文法: 属性文法的特点: ①是一种接近形式化的语义描述方法; ②长于描述静态语义、短于描述动态语义; ③每个语法符号有相应的属性符号; ④每个产生式有相应的计算属性的规则(即语义规则) 属性文法举例:例5-1 产生式 属性(计算)规则/语义规则 E → E1 + E2 E.val := E1.val + E2.val E → E1 * E2 E.val := E1.val * E2.val E →(E1) E.val := E1.val E →id E.val := id .val 5.2 属性文法 属性文法的定义:一个属性文法包含着一个上下文无关文法和一系列语义规则,这些语义规则附在文法的每一个产生式上,在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作,从而实现语义处理。属性文法的形式定义为: 三元组 A=(G,V,F),其中,G 是上下文无关文法,V是属性的有穷集,F是关于属性的计算规则。 属性文法的用法:    ◆根据文法符号的语义,为文法符号设置属性( 终结符使用单词的属性) ◆为每个产生式设置语义规则 描述各属性的关系——计算规则 ◆两种形式:语法制导定义和翻译模式。 5.2 属性文法 语法制导定义: 语法制导定义的概念:构造属性文法时,不指明翻译时语义规则的计算顺序,这样的属性文法称为语法制导定义。其形式如P210。 S-属性定义:唯独只使用综合属性的语法制导定义称为S-属性定义。 S-属性定义中属性的计算:在S-属性定义的分析树中,通常可以使用自底向上的方法在每一个归约处使用语义规则来计算结点的综合属性值,即从叶结点到根结点进行计算。 举例:例5-2,简单算术表达式求值的属性文法以及简单算术表达式3*5+4的语义分析过程如下。 5.2 属性文法 5.2 属性文法 L-属性定义:包含综合属性和继承属性的语法制导定义称为L-属性定义。P230给出了L-属性的形式定义。P230的表5.6给出了非L-属性的语法制导定义。 L-属性定义中属性的计算:其属性可用深度优先的顺序从左至右计算。即对于所有A→X1 X2 … Xn ,Xi 属性计算仅使用X1、X2、…、Xi-1 的属性和A的继

文档评论(0)

178****9325 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档