编译原理复习(第三部分)

第五章 语法制导翻译

1.语法制导翻译概述

在这里插入图片描述
基本思想
1.为CFG中的文法符号设置语义属性,用来表示语法成分对应的语义信息
2.文法符号的语义属性值是用与文法符号所在产生式(语法规则)相关联的语义规则来计算的
3.对给定的输入串x,构建x的语法分析树,并利用与产生式(语法规则)相关联的语义规则计算分析树中各结点对应的语义属性值

两个概念
语法制导定义——SDD
语法制导翻译方案——SDT

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
SDD与SDT
SDD

  • 是关于语言翻译的高层次规格说明
  • 隐蔽了许多具体实现细节,使用户不必显式地说明翻译发生的顺序

SDT

  • 可以看作式对SDD的一种补充,是SDD的具体实施方案
  • 县式地指明了语义规则的计算顺序,以便说明某些实现细节

2.语法制导定义SDD

  • 将每个文法符号和一个语义属性集合相关联
  • 将每个产生式和一组语义规则相关联,用来计算该产生式中各文法符号的属性值

文法符号的属性

  • 综合属性在这里插入图片描述

  • 继承属性在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.SDD的求值顺序

语义规则建立了属性之间的依赖关系,在对语法分析树节点的一个属性求值之前,必须首先求出这个属性值所依赖的所有属性值

依赖图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.S-属性定义与L-属性定义

S-属性定义

  • 仅仅使用综合属性的SDD称为S属性的SDD,或S-属性定义、S-SDD在这里插入图片描述
  • 如果一个SDD是S属性的,可以按照语法分析树节点的任何自底向上顺序来计算它的各个属性值
  • S-属性定义可以在自底向上的语法分析过程中实现

L-属性定义

  • L-属性定义(也称为L属性的SDDL-SDD)的
    直观含义:在一个产生式所关联的各属性之间,
    依赖图的边可以从左到右,但不能从右到左(因此称为L属性的,L是Left的首字母)在这里插入图片描述

5.语法制导翻译方案SDT

语法制导翻译方案(SDT)是在产生式右部中嵌入了程序片段(称为语义动作)的CFG
在这里插入图片描述
SDT可以看作是SDD的具体实施方案

  • 基本文法可以使用LR分析技术,且SDD是S属性的
  • 基本文法可以使用LL分析技术,且SDD是L属性的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.在非递归的预测分析过程中进行翻译

扩展语法分析栈在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
。。。

7.在递归的预测分析过程中进行翻译

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.L-属性定义的自底向上的翻译

在这里插入图片描述

第六章 中间代码生成

类型表达式的表示

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值