语法制导翻译.ppt
《语法制导翻译.ppt》由会员分享,可在线阅读,更多相关《语法制导翻译.ppt(25页珍藏版)》请在三一办公上搜索。
1、语法制导翻译,静态语义分析这一步才真正开始考虑程序设计语言的实际意义静态语义分析的作用:检查出源程序中的静态语义错误 并且将语义正确的语句翻译成中间代码该过程中通常使用的方法是语法制导翻译,1,2,第四章 语法制导翻译生成中间代码,语法制导翻译是处理语义的基本方法,它以语法分析为基础,在语法分析得到语言结构的结果时,对附着于此结构的语义进行处理,如计算表达式的值、生成中间代码等。主要内容包括:语法制导翻译的基本概念中间代码简介符号表简介典型声明语句与可执行语句的翻译,3,4.1 语法制导翻译简介,语法与语义语法与语义的关系语法是指语言的结构、即语言的“样子”;语义是指附着于语言结构上的实际含意
2、,即语言的“意义”。语义不能离开语法独立存在;语义远比语法复杂;同一语言结构可包含多种含意,不同语言结构可表示相同含意;语法与语义之间没有明确的界线。例1 猫吃老鼠与老鼠吃猫,晒被子与晒太阳(语法正确不一定语义正确),4,4.1 语法制导翻译简介,语义分析的两个作用检查是否结构正确的句子所表示的意思也合法;执行规定的语义动作,如:表达式求值符号表填写中间代码生成等语义分析的方法语法制导翻译,基本思想:将语言结构的语义以属性的形式赋予代表此结构的文法符号,而属性的计算以语义规则的形式赋予由文法符号组成的产生式,在语法分析推导或者规约的每一步骤中,通过语义规则实现对属性的计算。,5,4.1 语法制
3、导翻译简介,属性与语义规则 语法制导翻译的基本思想 为每个产生式配上语义规则并且在适当的时候执行这些规则具体方法:将文法符号所代表的语言结构的意思,用附着于该文法符号的属性表示;用语义规则规定产生式所代表的语言结构之间的关系(即属性之间的关系),即用语义规则实现属性计算。语义规则的执行:在语法分析的适当时刻(如推导或归约)执行附着在对应产生式上的语义规则,以实现对语言结构语义的处理,如计算、查填符号表、生成中间代码、发布出错信息等。,6,4.1 语法制导翻译简介,属性的表示.attr 如:E.val(值),E.type(类型),E.code(代码序列),E.place(存储空间)属性在程序设计
4、中的具体表示可以根据实际情况采用适当 的数据结构或者程序代码来实现语义规则定义定义4.1 对于产生式A,其中是由文法符号X1X2.Xn组成的序列,它的语义规则可以表示为(4.1)所示关于属性的函数:b:=f(c1,c2,.,ck)(4.1),7,4.1 语法制导翻译简介,A 的语义规则 b:=f(c1,c2,.,ck)(4.1)语义规则中的属性存在下述性质与关系。若b是A的属性,c1,c2,.,ck是中文法符号的属性,或者A的其它属性,则称b是A的综合属性。若b是中某文法符号Xi的属性,c1,c2,.,ck是A的属性,或者是中其它文法符号的属性,则称b是Xi的继承属性。称(4.1)中属性b依赖
5、于属性c1,c2,.,ck。若语义规则的形式如下述(4.2),则可将其想像为产生式左部文法符号A的一个虚拟属性。属性之间的依赖关系,在虚拟属性上依然存在。f(c1,c2,.,ck)(4.2)(4.1)中属性之间的依赖关系,实质上反映了属性计算的先后次序,即所有属性ci被计算之后才能计算属性b。,8,4.1 语法制导翻译简介,语义规则的两种形式语法制导定义用抽象属性和运算符号表示的语义规则翻译方案用具体属性和运算表示的语义规则 语义规则也被习惯上称为语义动作。二者作用等价,语法制导定义适用于设计阶段,翻译方案适用于实现阶段。,9,4.1 语法制导翻译简介,例4.1 将中缀形式的算术表达式转换为后
6、缀表示。其语法制导定义和翻译方案可分别表示如下。其中print(E.post)是L的虚拟属性,即L.p:=print(E.post)。翻译方案中的.lexval表示词法分析返回的记号num的值。,10,4.1 语法制导翻译简介,语法制导定义只考虑“做什么”.post表示表达式的后缀式|表示后缀式的连接 属性和运算的具体实现细节不在语法制导定义的考虑范围,11,4.1 语法制导翻译简介,翻译方案不但考虑做什么还要考虑如何做 例子中用数组post存放表达式的后缀形式 由num归约得到的子表达式E的后缀式就是它自身 归约由两个子表达式和加号组成的表达式时,两个子 表达式以分析过,已经分别按从左到右的
7、顺序放在post中,此时仅需将+添加到post中,12,4.1 语法制导翻译简介,从某种意义上来说,语法制导定义类似于算法,而翻译方案类似于程序由于翻译方案与具体的实现密切相关,因此不同实现方法可以达到相同的目的(不唯一),另一种翻译方案:无需存放中间过程,直接在分析的过程中输出表达式的后缀形式。原因:自下而上分析过程是对表达式分析树的一次后续遍历,而遍历次序与表达式的后缀表示正好一致。,13,4.1 语法制导翻译简介,翻译方案中需要考虑的问题:采用什么样的语法分析方法,不同的分析方法对语义处理的次序不同为属性分配存储空间考虑计算次序翻译方案1,自下而上计算,LR分析。以3+5+8为例,归约时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语法 制导 翻译

链接地址:https://www.31ppt.com/p-5651035.html