语法制导翻译概述.pptx

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译程序的功能和组织结构;第六章 语法制导翻译; ;6.1.1 逆波兰记号(后缀式);后缀式的计算机处理 后缀式的最大优点是易于计算机处理 处理过程: 从左到右扫描后缀式,每碰到运算对象就推进栈;碰到运算符就从栈顶弹出相应目数的运算对象施加运算,并把结果推进栈。最后的结果留在栈顶。? ;逆波兰表示法的扩充 逆波兰表示法很容易扩充到表达式以外的范围 例如:;逆波兰示例;确定输入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?+) ;6.1.2 三元式和树形表示;6.1.3 四元式;四元式的特点;同样要将算法语言翻译成相应的四元式,也要将四元式扩充到其他运算符,如(jmp,_,L)表示无条件转向第L条四元式。;6.1.4 汇编代码;6.2 语法制导翻译的概述(如何把源程序翻译成相应的中间代码); 翻译的任务:语法结构的静态语义分析和正确性检查,若正确,则翻译成中间代码或目标代码。 使用的方法:称作语法制导翻译。 基本思想(简言之):根据翻译的需要设置文法符号的属性(这些属性代表与文法符号相关的信息),以描述语法结构的语义。;属性一般分为两类:综合属性和继承属性。简单的说,综合属性用于“自下而上”传递信息,而继承属性用于“自上而下”传递信息。 属性加工加工的过程即是语义处理的过程,对于文法的每一个产生式都配备了一组属性的计算规则,则称为语义规则。 ;一个属性文法它包含一个上下文无关文法和一系列语义规则,这些语法规则附在文法的每个产生式上。 在一个语法制导定义中,?A→??P都有与之相关联的一套语义规则,规则形式为 b:= f(c1,c2,…,ck), f是一个函数,而且 1.b是A的一个综合属性并且c1,c2,…,ck是?中的符号的属性,或者 2.b是?中的符号的一个继承属性并且c1,c2,…,ck是A或?中的任何文法符号的属性。 在两种情况下,都说 属性b依赖于属性c1,c2,…,ck。;要特别强调的是: (1)终结???只有综合属性,它由词法分析器提供; (2)非终结符既可以有综合属性也可以有继承属性,文法开始符号的所有继承属性作为属性计算前的初始值。 一般来讲,对出现在产生式右边的继承属性和出现在产生式左边的综合属性都必须提供一个计算规则,属性计算规则中只能使用相应产生式的文法符号的属性,这有利于产生式范围内“封装”属性的依赖性。然而,出现在产生式左边的继承属性和出现在产生式右边的综合属性不由所给的产生式的属性计算规则进行计算,它们由其它产生式的属性规则计算,由属性计算器的参数提供。 ;语义规则所描述的工作可以包括属性计算、静态语义检查、符号表操作、代码生成等。语义规则可能产生副作用(如产生代码),也可能不是变元的严格函数(如某个规则给出可用的下一个数据单元的地址)。这样的语义规则通常写成过程调用,或过程段。 综合属性: 在语法树中,一个结点的综合属性的值由其子结点的属性值确定。因此,通常使用自底向上的方法在每一个结点处使用语义规则计算综合属性的值。仅仅使用综合属性的属性文法称S—属性文法。 继承属性: 在语法树中,一个结点的继承属性由此结点的父结点和/或兄弟结点的某些属性确定。用继承属性来表示程序语言结构中的上下文依赖关系很方便。;例6.1 台式计算器程序的语法制导定义(表6.1);综合属性 S-属性定义 唯独只使用综合属性的语法制导定义。 结点属性值的计算正好和自底向上分析建立分析树结点同步进行。 例 6 .2 输入:3*5+4n;digit?lexval:=3; ◆综合属性值的计算方法 对于s-属性定义 通常使用自底向上的分析方法;继承属性 继承属性值是由此结点的父结点和/或兄弟结点的某些属性值来决定的。 例 变量说明的类型定义 int a,b,c; 表6.2 带有继承属性L.in的语法制导定义;T;语法制导翻译的实现途径 以自下而上( LR分析)的语法制导翻译来说明 将LR分析器能力扩大,增加在归约后调用语义规则的功能

文档评论(0)

文单招、专升本试卷定制 + 关注
官方认证
服务提供商

专注于研究生产单招、专升本试卷,可定制

版权声明书
用户编号:8005017062000015
认证主体莲池区远卓互联网技术工作室
IP属地河北
统一社会信用代码/组织机构代码
92130606MA0G1JGM00

1亿VIP精品文档

相关文档