语法制导翻译课件.ppt

语法制导翻译课件.ppt

ID:57028930

大小:799.00 KB

页数:33页

时间:2020-07-26

语法制导翻译课件.ppt_第1页
语法制导翻译课件.ppt_第2页
语法制导翻译课件.ppt_第3页
语法制导翻译课件.ppt_第4页
语法制导翻译课件.ppt_第5页
资源描述:

《语法制导翻译课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章语法制导翻译程序设计语言中更重要的一个方面,是附着在语言结构上的语义语法表述的是语言的形式,或者说是语言的样子和结构语义揭示了程序本身的涵义、施加于语言结构上的限制或者要执行的动作语法正确的句子,它的语义可能存在问题2语义分析的任务:①检查语言结构的语义是否正确②执行所规定的语义动作如表达式的求值、符号表的填写、中间代码的生成3简例把一些属性附加到代表语言构造的文法符号上,从而将信息和一个语言构造联系起来。语法制导定义通过与文法产生式相关的语义规则来描述属性的值。4语法制导的翻译方案就是在产生式体中嵌入称为语义动作的程序片段按照惯例,语义动作放在花括号内。一个语义动作

2、在产生式体中的位置决定了这个动作的执行顺序。语义动作可以出现在产生式体中的任何位置5语法制导翻译的基本思想:对于文法:EE1+TETTFFdigitdigit.lexval为digit的属性;F.val、T.val、E.val为文法符号F、T、E对应的属性值将语言结构的语义以属性(attribute)的形式赋予代表此结构的文法符号,6当digit为常数时,digit.lexval为digit在常数表中的入口当digit为标识符时,digit.lexval为digit在符号表中的入口;F.val、T.val、E.val可以看作是中间变量7EE1+TE.val:=E1

3、.val+T.valFdigitF.val:=digit.lexvalTFT.val:=F.valETE.val:=T.val而属性的计算以语义规则(semanticrules)的形式赋予由文法符号组成的产生式;在语法分析推导或归约的每一步骤中,通过语义规则实现对属性的计算,以达到对语义的处理8换句话说是:为每一个产生式配上语义规则并且在适当的时候执行这些规则。即当归约(或推导)到某个产生式时,除了按照产生式进行相应的代换之外(语法分析),还要按照产生式所对应的语义规则执行相应的语义动作,如计算表达式、查填符号表、产生中间代码(语义分析)9语法制导翻译是目前最常用的语

4、义分析技术语法分析—建立语法分析树语义分析---遍历语法分析树语法制导翻译---建立与遍历同时完成10例1台式计算器程序的语法制导定义产生式语义规则LEprint(E.val)EE1+TE.val:=E1.val+T.valETE.val:=T.valTT1*FT.val:=T1.val*F.valTFT.val:=F.valF(E)F.val:=E.valFdigitF.val:=digit.lexval3*5+4的分析过程12113*F5TFE+TF4ET3*5+4的语法分析过程digit.lexval=3F.val=digit.lexvalT.val=F

5、.valdigit.lexval=5F.val=digit.lexvalT.val=T1.val*F.valE.val=T.valdigit.lexval=4F.val=digit.lexvalT.val=F.valE.val=E1.val+T.val125.1语法制导定义(Syntax-directeddefinitions)语法制导定义也叫属性文法,通过每一个产生式和一个语义规则集合相关联。它是在上下文无关文法的基础上,通过每个文法符号和一个属性集合相关联,语义规则用来计算与产生式中出现的符号相关联的属性的值。13注意:属性和文法符号相关联规则和产生式相关联如果X是一个

6、符号而a是X的一个属性,则X.a表示a在某个标号为X的分析树结点上的值14◆属性属性可以代表任何对象:字符串、数字、类型、内存单元或其它对象综合属性继承属性155.1.1属性1.b是A属性,在一个语法制导定义中,规则可表示为:b=f(c1,c2,…,ck)其中:f是一个函数,且满足下面两种情况之一:c1,c2,…,ck是中的文法符号的属性,或者A的其它属性,则称b是A的综合属性;A→P都有与之相关联的一套语义规则,16在两种情况下,都说属性b依赖于属性c1,c2,…,ck。2.c1,c2,…,ck是A或中的任何文法符号的属性,则称b是中的符号的一个继承属性。17

7、另一种定义综合属性:在分析树结点N上的非终结符A的综合属性是由N上的产生式所关联的语义规则来定义的。(该产生式的头一定是A)。结点N上的综合属性只能通过N的子结点或N本身的属性值来定义继承属性:在分析树结点N上的非终结符B的继承属性是由N的父结点上的产生式所关联的语义规则来定义的。(该产生式的体中必然包括符号B)。结点N的继承属性只能通过N的父结点、N本身和N的兄弟结点上的属性值来定义18说明终结符只有综合属性,由词法分析器提供非终结符既可有综合属性也可有继承属性,文法开始符号的所有继承属性作为属性计算前的初始值对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。