语法制导翻译技术幻灯片.ppt
《语法制导翻译技术幻灯片.ppt》由会员分享,可在线阅读,更多相关《语法制导翻译技术幻灯片.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、语法制导翻译技术第1页,共65页,编辑于2022年,星期二例如:表达式A+B*C对运算对象进行类型检查,对变量进行先定义后使用检查如果静态语义正确,语义处理则要执行真正的翻译,即生成程序的某种中间代码的形式或直接生成目标代码。执行真正的翻译执行真正的翻译第5章 语法制导翻译技术和中间代码生成第2页,共65页,编辑于2022年,星期二目前多数编译程序进行语义分析的方法是采用语法制导翻译法采用语法制导翻译法。它不是一种形式系统,但它比较接近形式化。语法制导翻译法使用属性文法为工具来描述程序设计语言的语义。第5章 语法制导翻译技术和中间代码生成第3页,共65页,编辑于2022年,星期二(1)属性对文
2、法的每一个符号,引进一些属性,这些属性代表与文法符号相关的信息,如类型、值、存储位置等。与属性相关的信息,即属性值,可以在语法分析过程中计算和传递。5.2属性文法第5章 语法制导翻译技术和中间代码生成第4页,共65页,编辑于2022年,星期二属性分为两类:综合属性其计算规则按“自下而上”方式进行,即规则左部符号的某些属性根据其右部符号的属性和(或)自己的其他属性计算而得。属性加工的过程即是语义的处理过程。属性加工的过程即是语义的处理过程。综合属性和继承属性。第5章 语法制导翻译技术和中间代码生成第5页,共65页,编辑于2022年,星期二继承属性其计算规则按“自上而下”方式进行,即规则右部符号的
3、某些属性根据其左部符号的属性和(或)右部其他符号的某些属性计算而得。第5章 语法制导翻译技术和中间代码生成第6页,共65页,编辑于2022年,星期二(2)属性文法为文法的每一个规则配备的计算属性的计算规则,称为语义规则(描述语义处理的加工动作)。属性文法包含一个上下文无关文法和一系列语义规则。语义规则:第5章 语法制导翻译技术和中间代码生成第7页,共65页,编辑于2022年,星期二这些语义规则附在文法的每个产生式上,在语法分析过程中,执行语义规则描述的动作,从而实现语义处理。也就是说,附在文法的每个产生式上语义规则描述了语义处理的加工动作。目前流行的语义描述和语义处理的方法主要是属性文法和语法
4、制导翻译方法。第5章 语法制导翻译技术和中间代码生成第8页,共65页,编辑于2022年,星期二G:EE+T|TTT*F|FF(E)|iG:DTLTinteger|realLL,id|id第9页,共65页,编辑于2022年,星期二5.3 语法制导翻译概述语法制导翻译概述为文法的每个产生式都配备一个语义动作或语义子程序。在语法分析的过程中,每当使用一条产生式进行推导或归约时,就执行相应产生式的语义动作,从而实现语义处理。第5章 语法制导翻译技术和中间代码生成(1)语法制导翻译法的基本思想第10页,共65页,编辑于2022年,星期二SAxya1a2a3aiai+1an语义处理的加工动作语法制导翻译法
5、使用属性文法为工具来说明程序设计语言的语义。第5章 语法制导翻译技术和中间代码生成第11页,共65页,编辑于2022年,星期二(2)语法制导翻译法语法制导翻译法 在语法分析过程中,依随分析的过程,根据每个产生式所对应的语义子程序(或语义规则描述的语义处理的加工动作)进行翻译的方法。第5章 语法制导翻译技术和中间代码生成第12页,共65页,编辑于2022年,星期二为文法每一产生式设计相应的求值的语义描述(语义动作):例如,设有简单算术表达式的文法:EEE|E*E|(E)|digit1.EE(1)E(2)E.valE(1).valE(2).val2.EE(1)*E(2)E.valE(1).val*
6、E(2).val3.E(E(1)E.valE(1).val4.EdigitE.valLex.digit7+8*5,3+8,6*5,第5章 语法制导翻译技术和中间代码生成第13页,共65页,编辑于2022年,星期二1.EE(1)E(2)E.valE(1).valE(2).val2.EE(1)*E(2)E.valE(1).val*E(2).val3.E(E(1)E.valE(1).val4.EdigitE.valLex.digit句子7+8*5E.val=47E.val=8E.val=40E.val=7E.val=5+5*87EEEEE第14页,共65页,编辑于2022年,星期二5.4编译中常用的
7、中间代码:逆波兰式四元式三元式树形表示第5章 语法制导翻译技术和中间代码生成第15页,共65页,编辑于2022年,星期二逆波兰式逆波兰式 逆波兰式除去了原表达式中的括号,并将运算对象写在前面,运算符写在后面,因而又称为后缀式后缀式。例如:逆波兰式a*bab*(a+b)*(c+d)ab+cd+*中缀表达式第5章 语法制导翻译技术和中间代码生成第16页,共65页,编辑于2022年,星期二逆波兰式表示法同中缀表示法相比其优点是:1.不再有括号,且运算符出现的顺序体现了中缀表达式的运算顺序2.易于计算机处理第5章 语法制导翻译技术和中间代码生成第17页,共65页,编辑于2022年,星期二一般表达式计值
8、时,要处理两类符号,一类是运算对象,另一类是运算符,通常用两个工作栈分别处理。但处理用逆波兰式表示的表达式却只用一个工作栈。第5章 语法制导翻译技术和中间代码生成第18页,共65页,编辑于2022年,星期二当计算机自左到右顺序扫描逆兰波式时,若当前符号是运算对象则进栈,若当前符号是运算符,设为K元运算符,则将栈顶的K个元素依次取出,同时进行K元运算,并将运算结果置于栈顶,表达式处理完毕时,其计算结果自然呈现在栈顶。第5章 语法制导翻译技术和中间代码生成第19页,共65页,编辑于2022年,星期二逆波兰式ab+c*的处理过程如下图:baT1cT1T2第5章 语法制导翻译技术和中间代码生成第20页
9、,共65页,编辑于2022年,星期二逆波兰形式可以推广到其他语法结构:赋值语句V=E逆波兰式VE=条件语句逆波兰式ifES1;elseS2ES1S2¥第5章 语法制导翻译技术和中间代码生成第21页,共65页,编辑于2022年,星期二三元式和树形表示三元式三元式主要由三部分组成:(OP,arg1,arg2)其中OP是运算符,arg1,arg2分别是第一和第二两个运算对象。当OP是一目运算时,常常将运算对象定义为arg1。第5章 语法制导翻译技术和中间代码生成第22页,共65页,编辑于2022年,星期二例如a+b*c的三元式序列:(1)(*,b,c)(2)(+,a,(1)运算对象是指向符号表的某一
10、项或指向三元式表的某一项。第5章 语法制导翻译技术和中间代码生成第23页,共65页,编辑于2022年,星期二1.三元式出现的顺序和语法成份的计值顺序相一致。三元式的特点:2.三元式之间的联系是通过指示器实现的。第5章 语法制导翻译技术和中间代码生成第24页,共65页,编辑于2022年,星期二间接三元式(1)间接三元式表:用来存放各三元式本身。(2)间接码表:按执行各三元式的顺序,依次列出各三元式在三元式表中的位置。注意注意:间接三元式表中不存放重复的间接三元式表中不存放重复的 三元式。三元式。第5章 语法制导翻译技术和中间代码生成第25页,共65页,编辑于2022年,星期二例如语句X=(A+B
11、)*CY=D(A+B)三元式序列(1)(+,A,B)(2)(*,(1),C)(3)(=,X,(2)(5)(,D,(4)(4)(+,A,B)(6)(=,Y,(5)间接三元式间接码表三元式表(1)(2)(3)(1)(4)(5)(1)(+,A,B)(2)(*,(1),C)(3)(=,X,(2)(4)(,D,(1)(5)(=,Y,(4)第5章 语法制导翻译技术和中间代码生成第26页,共65页,编辑于2022年,星期二树形表示A*B+C*D+C*A*BD末端结点表示一个运算对象,每一个内结点表示一个一元或二元运算符。树形表示是三元式的翻版(3)+(1)*(2)*CABD第5章 语法制导翻译技术和中间代码
12、生成第27页,共65页,编辑于2022年,星期二四元式四元式主要由四部分组成:(OP,arg1,arg2,result)其中OP是运算符,arg1,arg2分别是第一和第二两个运算对象。当OP是一目运算时,常常将运算对象定义为arg1。第5章 语法制导翻译技术和中间代码生成第28页,共65页,编辑于2022年,星期二四元式的第四个分量result是编译程序为存放中间运算结果而临时引进的变量,常称为临时变量,如Ti,也可以是用户自定义变量,如X。例如Xa*bc/d的四元式序列:(1)(*,a,b,T1)(2)(/,c,d,T2)(3)(+,T1,T2,T3)(4)(=,T3,-,X)第5章 语法
13、制导翻译技术和中间代码生成第29页,共65页,编辑于2022年,星期二2.四元式之间的联系是通过临时变量实现的,这样易于调整和变动四元式。1.四元式出现的顺序和语法成份的计值顺序相一致。四元式的特点:3.便于优化处理。第5章 语法制导翻译技术和中间代码生成四元式还可以表示条件的转移(ifabgoto0)(goto0)第30页,共65页,编辑于2022年,星期二编译系统中,有时将四元式表示成另一种更直观,更易理解的形式三地址代码或三地址语句。result:arg1OParg2三地址语句三地址语句:语句中是三个量的赋值语句,每个量占一个地址。三地址代码形式定义为:第5章 语法制导翻译技术和中间代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语法 制导 翻译 技术 幻灯片
限制150内