编译原理第6章属性文法和语法制导翻译.ppt
《编译原理第6章属性文法和语法制导翻译.ppt》由会员分享,可在线阅读,更多相关《编译原理第6章属性文法和语法制导翻译.ppt(17页珍藏版)》请在三一办公上搜索。
1、第六章 属性文法和语法制导翻译,内容,属性文法基于属性文法的处理方法S-属性文法的自下而上计算L-属性文法和自顶向下翻译自下而上计算继承属性,第六章 属性文法和语法制导翻译,语义:一组规则,用它可以定义一个程序的意义。描述方法:自然语言描述:隐藏错误、二义性和不完整性形式描述:操作语义(PL/1)指称语义(ADA)代数语义(PASCAL)属性文法,语义分析的任务,语义检查例 类型、运算、维数、越界语义处理例 变量的存储分配例 表达式的求值例 语句的翻译(中间代码的生成)问题如何根据被识别出的语法单位进行语义处理?,章节目录,第六章 属性文法和语法制导翻译,编译中的语义处理包括两个功能:(1)审
2、查每个语法结构的静态语义,即验证语法结构合法的程序是否真正有意义。也称为静态语义分析或静态审查;(2)如果静态语义正确,则执行真正的翻译,即生成中间代码或生成实际的目标代码。以上工作普遍基于属性文法和语法制导翻译方法。,6.1 属性文法,属性文法(也称属性翻译文法)Knuth在1968年提出在上下文无关文法的基础上,为每个文法符号(终结符或非终结符)配备若干相关的“值”(称为属性)。属性代表与文法符号相关信息,如类型、值、代码序列、符号表内容等属性可以进行计算和传递语义规则:对于文法的每个产生式都配备了一组属性的计算规则,6.1 属性文法,属性综合属性:“自下而上”传递信息继承属性:“自上而下
3、”传递信息在一个属性文法中,对应于每个产生式A都有一套与之相关联的语义规则,每条规则的形式为:b:=f(c1,c2,ck)这里,f是一个函数,而且或者1.b是A的一个综合属性并且c1,c2,ck是产生式右边文法符号的属性,或者2.b是产生式右边某个文法符号的一个继承属性并且c1,c2,ck 是A或产生式右边任何文法符号的属性。在两种情况下,属性b依赖于属性c1,c2,ck。,6.1 属性文法,说明终结符只有综合属性,由词法分析器提供非终结符既可有综合属性也可有继承属性,文法开始符号的所有继承属性作为属性计算前的初始值对出现在产生式右边的继承属性和出现在产生式左边的综合属性都必须提供一个计算规则
4、。属性计算规则中只能使用相应产生式中的文法符号的属性出现在产生式左边的继承属性和出现在产生式右边的综合属性不由所给的产生式的属性计算规则进行计算,它们由其它产生式的属性规则计算或者由属性计算器的参数提供,6.1 属性文法,语义规则所描述的工作可以包括属性计算、静态语义检查、符号表操作、代码生成等等。例,考虑非终结符A,B和C,其中,A有一个继承属性a和一个综合属性b,B有综合属性c,C有继承属性d。产生式ABC可能有规则 C.d:=B.c+1 A.b:=A.a+B.c而属性A.a和B.c在其它地方计算,属性文法的例子:简单算术表达式求值的语义描述。非终结符E、T及F都有一个综合属性val,符号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 属性 文法 语法 制导 翻译
链接地址:https://www.31ppt.com/p-6599838.html