编译原理清华大学第8章 语法制导翻译和中间代码生成ppt课件.ppt

编译原理清华大学第8章 语法制导翻译和中间代码生成ppt课件.ppt

ID:58665045

大小:1.22 MB

页数:149页

时间:2020-10-05

编译原理清华大学第8章 语法制导翻译和中间代码生成ppt课件.ppt_第1页
编译原理清华大学第8章 语法制导翻译和中间代码生成ppt课件.ppt_第2页
编译原理清华大学第8章 语法制导翻译和中间代码生成ppt课件.ppt_第3页
编译原理清华大学第8章 语法制导翻译和中间代码生成ppt课件.ppt_第4页
编译原理清华大学第8章 语法制导翻译和中间代码生成ppt课件.ppt_第5页
资源描述:

《编译原理清华大学第8章 语法制导翻译和中间代码生成ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章语法制导翻译和中间代码生成【课前思考】◇回顾第一章介绍的编译过程,理解语义分析在编译过程中的位置和作用。◇“属性文法”的概念及应用。◇“语法制导翻译”的概念及应用。◇什么是中间代码(中间表示),为什么要中间代码?【学习目标】明确语义分析在编译过程所处的阶段和作用。掌握属性文法的基本概念。使用属性文法和语法制导翻译方法描述具体的语义分析和产生中间代码。主要是了解:1)语义的描述方式;2)语义的处理方法。【本章重点】(1)几种典型的中间代码(语言)的形式;(2)语义的描述方法:一种形式化的语义描述方法—属性文法;(3)语义的处理方法:语法制导的

2、翻译法—包括它的两种具体形式:语法制导的翻译和翻译方案。编译程序的任务是把源程序翻译成目标程序,这个目标程序必须和源程序的语义等同,也就是说,尽管它们的语法结构完全不同,但它们所表达的结果应完全相同。通常,在词法分析程序和语法分析程序对源程序的语法结构进行分析之后:或者由语法分析程序直接调用相应的语义子程序进行语义处理;或者首先生成语法树或该结构的某种表示,再进行语义处理。8.0概述第一,审查每个语法结构的静态语义,即验证语法结构合法的程序是否真正有意义。有时把这个工作称为静态语义分析或静态审查。静态语义分析通常包括:①类型检查②控制流检查③一致

3、性检查④相关名字检查⑤名字的作用域分析第二,如果静态语义正确,语义处理则要执行真正的翻译,即,或者将源程序翻译成程序的一种中间表示形式(中间代码),或者将源程序翻译成目标代码。编译中的语义处理是指两个功能:中间代码,也称中间语言,是复杂性介于源程序语言和机器语言的一种表示形式。为什么有的编译程序直接生成目标代码,有的编译程序采用中间代码。一般,快速编译程序直接生成目标代码,没有将中间代码翻译成目标代码的额外开销。但是为了使编译程序结构在逻辑上更为简单明确,常采用中间代码。这样可以将与机器相关的某些实现细节置于代码生成阶段仔细处理,并且可以在中间代

4、码一级进行优化工作使得代码优化比较容易实现。8.1属性文法(attributegrammar)属性文法(也称属性翻译文法)是DonaldErvinKnuth在1968年首先提出的。它是在上下文无关文法的基础上,为每个文法符号(终结符或非终结符)配备若干相关的“特性”(称为属性)。这些属性代表与文法符号相关信息,例如它的类型、值、代码序列、符号表内容等等。属性与变量一样,可以进行计算和传递。属性加工的过程即是语义处理的过程。对于文法的每个产生式都配备了一组属性的计算规则,称为语义规则。所谓属性,其涉及的概念比较广泛,常用以描述事物或人的特征、性质,

5、品质等等。比如,谈到一个物体,可以用"颜色"描述它,谈起某人,可以使用"有幽默感"来形容他。对编译程序使用的语法树的结点,可以用"类型"、"值"或"存储位置"来描述它。一个属性文法包含一个上下文无关文法和一系列语义规则,这些语义规则附在文法的每个产生式上。所谓语法制导的翻译指的是在语法分析过程中,完成这些语义规则描述的动作,从而实现语义处理。8.1.1属性文法定义定义1:形式上讲,属性文法是一个三元组:A=(G,V,F),其中:G:是一个上下文无关文法;V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连,这些属性代表与文法符号相关信息;F

6、:关于属性的属性断言或一组属性的计算规则(称为语义规则)。断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性。定义2:一个属性文法是一个三元组:A=(G,V,F),其中G--基础文法(一个上下文无关文法)V--每个文法符号有一组属性F--每个文法产生式A有一组形式为b:=f(c1,c2,…,ck)的语义规则,其中f是函数,b和c1,c2,…,ck是该产生式文法符号的属性。属性文法中的属性分成两类:继承属性和综合属性。简单地说,综合属性用“自下而上"传递信息,而继承属性用于"自上而下"传递信息。综合属性(syn

7、thesizedattribute):如果b是A的属性,c1,c2,…,ck是产生式右部文法符号的属性或A的其它属性,则称b是文法符号A的综合属性。继承属性(inheritedattribute):如果b是产生式右部某个文法符号X的属性,并且c1,c2,…,ck是A或产生式右部文法符号的属性,则称b是文法符号X的继承属性。属性文法的主要思想是:.对每个文法符号引入相关的属性符号;.对于每个产生式写出计算属性值的属性规则(语义规则),其形式为:b:=f(c1,c2,…,ck)即:属性变量:=<属性表达式>这里f是一个函数,且对于产生式A,(1)

8、b或者是A的一个综合属性并且c1,c2,…,ck是产生式右边文法符号的属性;(2)b或者是产生式右边某个文法符号的一个继承属性并且c1,

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

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

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