资源描述:
《编译原理第八章—语法制导翻译.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、第8章语法制导翻译和中间代码生成数计学院宋彩芳语义分析基础编译程序的任务将汇编语言或高级语言书写成的源程序转换成等价的目标代码程序。其中要求目标代码程序和源程序的语义(Semantics)必须相同。语义分析的执行方式语法分析程序直接调用相应的语义子程序进行处理先生成语法树,再进行语义分析语义分析基础语法与语义的关系语法是指语言的结构、即语言的“样子”;语义是指附着于语言结构上的实际含意,即语言的“意义”。对于语法和语义:语义不能离开语法独立存在;语义远比语法复杂;同一语言结构可以包含多种含意,不同语言结构表示相同含意;语法与语义之间没有明确的界线。语义分析
2、基础语义分析的任务包括两方面静态语义分析或静态审查(验证语法结构合格的程序是否真正有意义);动态语义的解释执行(计算并生成中间代码)。代码的生成方式语义分析直接生成目标代码(快速编译)语义分析生成中间代码(进一步进行优化)源语言程序中间代码汇编代码词法分析语义分析语法分析中间代码生成代码生成在编译中的逻辑阶段前端处理后端处理语义处理语义分析基础源语言程序汇编代码词法分析语义分析语法分析代码生成前端处理后端处理语义处理语义处理语义分析基础语义处理的实现(第八章)属性文法:描述语义规则。语法制导翻译:在语法分析的同时,执行语义规则描述的动作:检查静态语义生成中
3、间代码/目标代码语义处理的环境(第九章)符号表为语义分析提供类型、作用域等信息。为代码生成提供类型、作用域、存储类别、存储(相对)位置等信息。主要内容属性文法语法制导翻译概论计算语义规则S-属性文法和自下而上翻译L-属性文法和自上而下翻译L-属性文法和自下而上翻译中间代码生成简单赋值语句的翻译布尔表达式的翻译控制结构的翻译说明语句的翻译数组和结构的翻译语义形式化形式语义学的研究已取得了许多重大的进展文法模型----属性文法命令式或操作式模型-----操作语义学应用式模型-----指称语义学公理式模型-----公理语义学语义形式化采用属性文法和语法制导翻译对
4、语义处理工进行比较规范和抽象的描述;属性文法:包含一个上下文无关文法和一系列附在文法产生式上的语义规则;语法制导翻译:在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作。语法制导翻译属性文法语法制导翻译概论计算语义规则S-属性文法和自下而上翻译L-属性文法和自上而下翻译L-属性文法和自下而上翻译属性文法属性文法的形式化定义属性文法是一个三元组:A=(G,V,F),其中G:是一个上下文无关文法。V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连。F:关于属性的断言或谓词集。每个断言与一个产生式相联。属性文法属性的抽象表示例如:E.val
5、(值)E.type(类型)E.code(代码序列)E.place(存储空间)属性文法文法G:ET1+T2
6、T1orT2Tnum
7、true
8、falseETT+34E{T1.t=T2.t}T{T2.t=int}T{T1.t=int}+34ET1+T2{T1.t=intANDT2.t=int}ET1orT2{T1.t=boolANDT2.t=bool}Tnum{T.t=int}Ttrue{T.t=bool}Tfalse{T.t=bool}属性文法属性文法是一个三元组:A=(G,V,F),其中G:基础文法V:每个文法符号有一组属性F:每个文法产生式A
9、有一组形式为b=f(c1,c2,…,ck)的语义规则,其中f是函数,b和c1,c2,…,ck是该产生式文法符号的属性语义规则中的属性存在下述性质与关系(1)若b是A的属性,c1,c2,...,ck是α中文法符号的属性,或者A的其它属性,则称b是A的综合属性。(2)若b是α中某文法符号X的属性,c1,c2,...,ck是A的属性,或者是α中其它文法符号的属性,则称b是X的继承属性属性文法属性文法是一个三元组:A=(G,V,F),其中G:基础文法V:每个文法符号有一组属性F:每个文法产生式A有一组形式为b=f(c1,c2,…,ck)的语义规则,其中f是
10、函数,b和c1,c2,…,ck是该产生式文法符号的属性语义规则中的属性存在下述性质与关系(3)称属性b依赖于属性c1,c2,...,ck。实质上反映了属性计算的先后次序,即所有属性ci被计算之后才能计算属性b。(4)若语义规则的形式如下,则可将其想像为产生式左部文法符号A的一个虚拟属性。属性之间的依赖关系,在虚拟属性上依然存在。f(c1,c2,...,ck)属性文法属性的特点:一个结点的综合属性的值通过分析树中它的子结点的属性值和自己的属性值计算的;继承属性的值由结点的父结点、兄弟结点来计算的;非终结符号即可有综合属性也可有继承属性,但文法开始符号没有继承
11、属性;终结符号只有综合属性,由词法分析器提供,即记号的属性。每个文