语法制导翻译中间代码生成.ppt

语法制导翻译中间代码生成.ppt

ID:51659244

大小:466.50 KB

页数:126页

时间:2020-03-27

语法制导翻译中间代码生成.ppt_第1页
语法制导翻译中间代码生成.ppt_第2页
语法制导翻译中间代码生成.ppt_第3页
语法制导翻译中间代码生成.ppt_第4页
语法制导翻译中间代码生成.ppt_第5页
资源描述:

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

1、第八章语法制导翻译和中间代码生成8.1概述8.2属性文法和语法制导翻译8.3语义分析8.4中间代码8.5一些语句的翻译概述语义处理程序设计语言的语义静态语义是对程序约束的描述,这些约束无法通过抽象语法规则来妥善地描述,实质上就是语法规则的良形式条件,它可以分为类型规则和作用域/可见性规则两大类类型相容性变量先声明后引用名称相关要求动态语义程序单位描述的计算编译程序的语义处理工作静态语义审查解释执行动态语义(计算)生成代码...语法分析后的源程序Þ语义处理概述语义形式化语义建模文法模型----属性文法命令式或操作式模型-----操作语义学应用式模型-----指称语义学公理式模型-----公理语义

2、学属性文法表达式文法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、状态怎样变化。For(expr1;expr2;expr3){expr1;...Loop:ifexpr2=0gotoout}…expr3;gotoloopout:...公理语义一个语言的每个语法成分的含义定义为公理和演绎规则,用于推导出该成分执行的效果。公理语义概念是随着程序正确性的证明而发展的。当正确性证明能构造时表明程序执行它的规格说明所描述的计算。在一个证明中,每一个语句之前之后都有一个逻辑表达式对程序的变量进行约束,以此说明这个语句的含义。一般的记号{P}S{Q}如果在语句S执行前P为真,则在语句S执行并终止后Q为真。演绎规则的例子规则前驱后继赋值:x:=expr{P(expr)}x:=

6、expr{P(x)}While:{P∧B}S{P}{P}whileBdoSend{P∧(notB)}if--then--else{B∧P}S1{Q},{(notB)∧P}S2{Q}{P}ifBthenS1elseS2{Q}指称语义指称语义的基本概念是给每一段程序实体定义一个数学意义上的对象,和一个从实体实例向数学意义对象的映射的函数特点:不但对全部程序赋予全文而且对程序设计语法每一个语法成分短语(表达式,命令,声明…)都给予含义。每一个语法成分(短语)的含义是以它的自成分的含义的术语来定义的。即语义结构平行于语法结构。语义函数:程序设计语言的语义利用映射函数来证明。语义函数将短语映射到它的指称

7、。例:二进制数语言110或10101语法实体指称(自然数)6或21语义实体二进制数文法Numeral::=0::=1::=Numeral0::=Numeral1自然数Natrual={0,1,2,3,…}语义函数Valuation:NumeralNaturalValuation[101]表示把Valuation施用于101Valuation[N]------把它施用于N定义:Valuation(用四个方程)因为有四个形式numeralValuation[0]0Valuation[1]1Valuation[N0]2Valuation[N]Valuation[N1]2Valuatio

8、n[N]+1所以:Valuation[110]=2Valuation[11]=2(2Valuation[1]+1)=2(21+1)=6属性文法和语法制导翻译虽然形式语义学(如指称语义学、公理语义学、操作语义学等)的研究已取得了许多重大的进展,但目前在实际应用中比较流行的语义描述和语义处理的方法主要还是属性文法和语法制导翻译方法属性文法属性文法(attributegrammar)是一个三元组:A=(G,V,F),其中G:是一个上下文无关文法V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连,这些属性代表与文法符号相关信息,如它的类型、值、代码序列、符号表内容等等.属性与变量一样

9、,可以进行计算和传递。属性加工的过程即是语义处理的过程。F:关于属性的属性断言或一组属性的计算规则(称为语义规则).断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性.属性有两种继承的和综合的属性属性通常分为两类:综合属性和继承属性。简单地说,综合属性用于“自下而上”传递信息,而继承属性用于“自上而下”传递信息。出现在产生式左边的继承属性和出现在产生式右边的综合属

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

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

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