【编译原理复习】第六章---- 属性文法和语法制导翻译

第六章 属性文法和语法制导翻译

本章主要掌握下面一些内容。
1.语义规则的两种描述方法:语法制导的定义翻译方案。语法制导的定义没有指明语义规则的计算次序,而翻译方案显式给出语义规则( 或叫语义动作)的计算次序和位置。

2.综合属性,继承属性

3.综合属性定义(S属性定义)和L属性定义。

4.设计简单问题的语法制导定义和翻译方案,这是本章的重点和难点。这种设计可看成是一种程序设计,是一种事件驱动形式的程序设计,因此它比一般的编程要 难得多。这里的事件是句子中各种语法结构的识别。

1.1 语法制导的定义

语法制导翻译:通过给语法树上各个符号赋予一定的含义 并且将各个符号进行有结构的连接,可以形成语言的具 体语句的含义。这给予我们以启示:可以通过扩充文法, 在文法符号上附着某些语义信息,并在这些语义信息间建 立相互计算关系,从而在语法分析的同时进行语义分析。 由于这种分析是在语法分析的控制下进行的,故称为语法 制导翻译
在这里插入图片描述
在这里插入图片描述

1.2 翻译方案

在这里插入图片描述

2.1 综合属性

综合属性:用于自下而上传递信息;在语法树中,一个结点的综合属性由其子 结点的属性值确定,因此,通常使用自底向上的方法在每一个结点处使用语义规 则计算综合属性的值。仅仅使用综合属性的属性文法称S-属性文法。

2.2 继承属性

继承属性:用于自上而下传递信息;在语法树中,一个结点的继承属性由此结 点的父结点和/或兄弟结点的某些属性确定

2.3注释分析树

在这里插入图片描述

3.1 S属性文法

S-属性文法的自下而上计算
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1 L属性文法

在语法分析过程中进行语义分析和翻译,属性的计算 顺序受到语法分析建立分析树结点顺序的限制。一种 自然的计算属性的顺序是按深度优先访问分析树结点 的顺序,它适应多种自底向上和自顶向下的翻译方法。 L-属性文法可用按深度优先顺序计算属性值。

在这里插入图片描述
翻译模式
在这里插入图片描述
在这里插入图片描述
自顶向下的翻译
在这里插入图片描述
在这里插入图片描述
关于左递归翻译模式更一般化的讨论
在这里插入图片描述
在这里插入图片描述

4.1 从翻译模式中去掉嵌入在产生式中 间的动作

在这里插入图片描述

4.2 模拟继承属性的计算

思想:通过引进新的非终结符和相应的ε产生式,将 新的文法符号插入到某些产生式中去,使得在文法在翻译 过程中可以按继承属性的计算方法来处理。也就是在分析 过程中文法符号的属性值在分析栈是确定的。
在这里插入图片描述

4.3 用综合属性代替继承属性

对基础文法进行等价改变,避免使用文法符号的继承属 性.
在这里插入图片描述

5 例题

例题!!!!!都是翻译模式例题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值