- 1、本文档共93页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
327-1328-2403-3第5章(语法制导翻译技术)教程
语义分析的任务:;例如:; 目前多数编译程序进行语义分析的方法是采用语法制导翻译法 。它不是一种形式系统, 但它比较接近形式化。 ;(1) 属性;属性分为两类:;继承属性其计算规则按“自上而下”方式进行, 即规则右部符号的某些属性根据其左部符号的属性和(或)右部其他符号的某些属性计算而得。;(2) 属性文法; 这些语义规则附在文法的每个产生式上,在语法分析过程中, 执行语义规则描述的动作, 从而实现语义处理。也就是说, 附在文法的每个产生式上语义规则描述了语义处理的加工动作。;2. 语法制导翻译法 ;S→……;(2) 语法制导翻译法 ;为文法每一产生式设计相应的求值的语义描述(语义动作): ;E.val = 47; 3. 编译中常用的中间代码:;逆波兰式 ; 逆波兰式表示法同中缀表示法相比其优点是:; 一般表达式计值时,要处理两类符号,一类是运算对象,另一类是运算符,通常用两个工作栈分别处理。但处理用逆波兰式表示的表达式却只用一个工作栈。 ; 当计算机自左到右顺序扫描逆兰波式时,若当前符号是运算对象则进栈,若当前符号是运算符,设为K元运算符,则将栈顶的K个元素依次取出,同时进行K元运算,并将运算结果置于栈顶,表达式处理完毕时,其计算结果自然呈现在栈顶。 ;逆波兰式ab+c*的处理过程如下图: ;逆波兰形式可以推广到其他语法结构: ;三元式和树形表示;例如 a+b*c 的 三元式序列:; 1. 三元式出现的顺序和语法成份的
计值顺序相一致。 ;间接三元式; 例如 语句; 树形表示;四元式主要由四部分组成: ; 四元式的第四个分量result是编译程序为存放中间运算结果而临时引进的变量,常称为临时变量,如Ti,也可以是用户自定义变量,如X。 ;2. 四元式之间的联系是通过临时变量实
现的,这样易于调整和变动四元式。 ; 编译系统中,有时将四元式表示成另一种更直观,更易理解的形式——三地址代码或三地址语句。;例如 X= a*b+c/d 的 四元式序列:;例1. –a + b * ( –c + d )的逆波兰式 ;t1= @ a;i↑( i /( i – i ) )的逆波兰式 ;4. 采用自下而上的语法制导翻译法语义 动作的设计;例1. 设文法及其相应的语义动作如下:;分析: 首先对输入串
bR / bTc / bSc /ac画出语法树:;S;S;例2 简单算术表达式求值的语义描述;例3 简单算术表达式翻译到四元式的
语义描述;E → E+E∣E*E∣(E) | i ;语义函数 emit(T=arg1 OP arg2) ; (2) 不进符号表,临时变量单词值部
分用整数码表示。 ;语义过程 Lookup(i.name) ; 1. E → E(1) + E(2) ;3. E →(E(1)) ;3. 算术表达式a+b*c翻译到三地址语句的过程: ;9;*c$;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译; (1) 真出口和假出口:;(2) 作为条件转移的E,把E翻译成的代码
是一串条件转或无条件转的四元式;(q);布尔表达式到四元式的翻译;(q);布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;(q);布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;(q);布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;???尔表达式语义动作的设计;布尔表达式语义动作的设计;布尔表达式语义动作的设计;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;布尔表达式到四元式的翻译;简单说明语句的翻译;简单说明语句的翻译;简单说明语句的翻译;简单说明语句的翻译;简单说明语句的翻译;简单说明语句的翻译
文档评论(0)