属性文法和语法制导翻译.ppt

属性文法和语法制导翻译.ppt

ID:48227798

大小:199.50 KB

页数:59页

时间:2020-01-18

属性文法和语法制导翻译.ppt_第1页
属性文法和语法制导翻译.ppt_第2页
属性文法和语法制导翻译.ppt_第3页
属性文法和语法制导翻译.ppt_第4页
属性文法和语法制导翻译.ppt_第5页
资源描述:

《属性文法和语法制导翻译.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第六章属性文法和语法制导翻译6.1属性文法6.2基于属性文法的处理方法6.3S-属性文法的自下而上计算6.4L-属性文法和自顶向下翻译6.5自下而上计算继承属性6.1属性文法概述语义处理程序设计语言的语义静态语义是对程序约束的描述,这些约束无法通过抽象语法规则来妥善地描述,实质上就是语法规则的良形式条件,它可以分为类型规则和作用域/可见性规则两大类类型相容性变量先声明后引用名称相关要求动态语义程序单位描述的计算编译程序的语义处理工作静态语义审查解释执行动态语义(计算)生成代码...语法分析后的源程序Þ语义处理7/16/2

2、0212中南大学软件学院陈志刚概述语义形式化语义建模文法模型----属性文法命令式或操作式模型-----操作语义学应用式模型-----指称语义学公理式模型-----公理语义学7/16/20213中南大学软件学院陈志刚属性文法表达式文法E—>T+T

3、TorT T—>n

4、bET1+T2{T1.type=intT2.type=T1.typeE.type:=int}ET1orT2{T1.type=boolT2.type=T1.typeE.type:=bool}Tn{T.type:=int}Tb{T.type:=bool}

5、7/16/20214中南大学软件学院陈志刚操作语义描述一段程序的含义是通过执行该段程序所改变的计算机(虚拟计算机)状态来反映。这个计算机的状态与程序执行时的状态相对应:包括变量的所有值,可执行程序本身,各种系统定义的内部数据结构。计算机里所有的寄存器的值和存储单元的值作为计算机的状态,用一组形式定义的操作来说明执行一条指令相应的状态怎样变化。For(expr1;expr2;expr3){expr1;...Loop:ifexpr2=0gotoout}…expr3;gotoloopout:...7/16/20215中南大学软

6、件学院陈志刚公理语义一个语言的每个语法成分的含义定义为公理和演绎规则,用于推导出该成分执行的效果。公理语义概念是随着程序正确性的证明而发展的。当正确性证明能构造时表明程序执行它的规格说明所描述的计算。在一个证明中,每一个语句之前之后都有一个逻辑表达式对程序的变量进行约束,以此说明这个语句的含义。一般的记号{P}S{Q}如果在语句S执行前P为真,则在语句S执行并终止后Q为真。7/16/20216中南大学软件学院陈志刚指称语义指称语义的基本概念是给每一段程序实体定义一个数学意义上的对象,和一个从实体实例向数学意义对象的映射的

7、函数特点:不但对全部程序赋予全文而且对程序设计语法每一个语法成分短语(表达式,命令,声明…)都给予含义。每一个语法成分(短语)的含义是以它的自成分的含义的术语来定义的。即语义结构平行于语法结构。语义函数:程序设计语言的语义利用映射函数来证明。语义函数将短语映射到它的指称。7/16/20217中南大学软件学院陈志刚属性文法虽然形式语义学(如指称语义学、公理语义学、操作语义学等)的研究已取得了许多重大的进展,但目前在实际应用中比较流行的语义描述和语义处理的方法主要还是属性文法和语法制导翻译方法7/16/20218中南大学软件

8、学院陈志刚属性文法属性文法(attributegrammar)是一个三元组:A=(G,V,F),其中G:是一个上下文无关文法V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连,这些属性代表与文法符号相关信息,如它的类型、值、代码序列、符号表内容等等.属性与变量一样,可以进行计算和传递。属性加工的过程即是语义处理的过程。F:关于属性的属性断言或一组属性的计算规则(称为语义规则).断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性.7/16/20219中南大学软件学院陈志刚属性有两种

9、继承的和综合的属性属性通常分为两类:综合属性和继承属性。简单地说,综合属性用于“自下而上”传递信息,而继承属性用于“自上而下”传递信息。出现在产生式左边的继承属性和出现在产生式右边的综合属性不由所给定的产生式的属性计算规则进行计算,它们由其它产生式的属性规则计算或者由生计算器的参数提供。AX1X2…XnA的综合属性,计算S(A):=f(I(X1),…,I(Xn))Xj的继承属性,计算T(Xj):=f(I(A),...I(Xn))1)非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性.2)终结符只有综合属性

10、.7/16/202110中南大学软件学院陈志刚在一个属性文法中,对应于每个产生式A都有一套与之相关联的语义规则,每条规则的形式为b:=f(c1,c2…ck)这里,f是一个函数,而且或者(1)b是A的一个综合属性并且c1,c2…ck是产生式右边文法符号的属性;或者(2)b是产生式右边某个文法符号的一个继承属性并且c

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

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

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