第八章语法制导翻译和中间代码生成ppt课件.ppt

第八章语法制导翻译和中间代码生成ppt课件.ppt

ID:58679896

大小:321.50 KB

页数:111页

时间:2020-10-05

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

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

1、第8章语法制导翻译和中间代码生成语义分析(semanticanalysis)编译程序的语义处理工作:静态语义分析—静态语义是对程序约束的描述。可分为类型规则和作用域/可见性规则两大类。审查每个语法结构的静态语义,即验证语法结构合法的程序是否真正有意义。动态语义—程序单位描述的计算,执行翻译、生成目标代码。翻译模式(Translationschemes)两种翻译模式:生成中间代码形式、直接生成目标代码。中间代码—(intermediatecode)中间语言:是介于源程序语言和机器语言之间的一种表示形式。Thesemanticrules—governwhattypesareallowab

2、leinthevariouslanguageconstructs.语义分析(1)类型检查。验证程序中执行的每个操作是否遵守语言的类型系统的过程.(2)控制流检查。控制流语句必须使控制转移到合法的地方(3)一致性检查。在很多场合要求对象只能被定义一次。(4)相关名字检查。(5)名字的作用域分析semanticanalysisTheparsedprogramisfurtheranalyzedtodeterminewhetheritconformstothesourcelanguage’scontextualconstraints:scoperules,typerulese.g.Torel

3、ateeachappliedoccurrenceofanidentifierinthesourceprogramtothecorrespondingdeclaration.语义学语义形式化、语义建模文法模型—属性文法命令式或操作式模型—操作语义学公理式模型—公理语义学应用式模型—指称语义学目前在实际应用中比较流行的语义描述和语义处理的方法主要是属性文法和语法制导翻译8.1属性文法(attributegrammar)一个属性文法包括一个上下文无关文法和一系列语义规则,这些语义规则附在文法的每个产生式上。语法制导翻译是指在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作。属

4、性文法一个属性文法是一个三元组A=(G,V,F)G上下文无关文法V属性的有穷集F关于属性的断言或谓词(语义规则)的有穷集。每个属性和非终结符或终结符相联每个断言与文法的某产生式相联,只引用该产生式相联的属性。属性文法这些属性代表与文法符号相关信息,如它的类型、值、代码序列、符号表内容等等。属性与变量一样,可以进行计算和传递。属性加工的过程即是语义处理的过程。属性的计算规则称为语义规则属性文法表达式文法:ET1+T2

5、T1orT2Tnum

6、true

7、falseET1+T2{T1.t=intANDT2.t=int}ET1orT2{T1.t=boolANDT2.t=bool}Tn

8、um{T.t:=int}Tture{T.t:=bool}Tfalse{T.t:=bool}属性文法使用N.t的形式表示与非终结符N相连的属性t。T.t的值为int或bool。与非终结符E的产生式相连的断言表明:两个T的属性必须相同。继承的和综合的属性属性通常分为两类:综合属性和继承属性综合属性用于“自下而上”传递信息,继承属性用于“自上而下”传递信息。非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性。终结符只有综合属性。继承的和综合的属性属性文法中,对应每一个产生式A都有一套与之相关联的语义规则,每条规则的形式为:b:=f(c1,c2,……,ck)其中:f是一

9、个函数,b和c1,c2,……,ck是该产生式文法符号的属性。如果b是A的一个属性,c1,c2,……,ck是产生式右部文法符号的属性或A的其它属性,则称b是A的综合属性。继承的和综合的属性(2)如果b是产生式右部某个文法符号X的一个属性,并且c1,c2,……,ck是A或产生式右部任何文法符号的属性,则称b是X的继承属性。在两种情况下,都称属性b依赖于属性c1,c2,……,ck属性文法的例产生式语义规则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.va

10、lF(E)F.val:=E.valFdigitF.val:=digit.lexval非终结符E、T及F都有一个综合属性val符号digit有一个综合属性,它的值由词法分析器提供。与产生式L→E对应的语义规则仅仅是打印由E产生的算术表达式的值的一个过程,我们可认为这条规则定义了L的一个虚属性。某些非终结符加下标是为了区分一个产生式中同一非终结符多次出现属性文法的例属性文法的例.LE.val=19E.val=15T.val=4T.val=15F.val=4

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

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

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