1 / 51
文档名称:

694-第六章 语义分析和语法制导翻译.ppt

格式:ppt   页数:51
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

694-第六章 语义分析和语法制导翻译.ppt

上传人:小玉儿 2012/2/5 文件大小:0 KB

下载得到文件列表

694-第六章 语义分析和语法制导翻译.ppt

文档介绍

文档介绍:第六章语义分析和语法制导翻译
语义分析的任务:检查语义错误
类型检查: 运算数类型
一致性检查: 名字声明与引用
控制流检查: 转移目标
名字检查: 作用域
翻译的任务:建立等价的目标程序
生成中间语言的指令序列
名字绑定: 变量名、过程名
建立运行环境
属性文法
语义分析与语法制导翻译的描述方法
属性文法的定义:
A=(G,V,F)
G 是上下文无关文法
V 属性的有穷集
F 关于属性的断言和谓词
用法
针对语义,为文法符号设置属性
终结符使用单词的属性
为每个产生式设置语义规则
通过描述各属性的关系
将语义分析和翻译步骤定义为产生式的断言和谓词
例6-1: 计算器的算法设计
需求:算术表达式的求值
设计:
编制算术表达式的文法
引入属性表示语义信息
将值 val 作为表达式 E、项 T 和因子 F 的属性
用语义规则描述表达式的求值
属性文法(语法制导定义)
attr 是单词 digit 的属性
print( val ) 是输出函数
产生式
语义规则
L → E
print( )
E → E1 + T
:= +
E → T
:=
T → T1 * F
:= *
T → F
:=
F →( E )
:=
F → digit
:=
例6-2:说明语句的类型信息统计
说明语句的作用
支持语义分析,提供语义检查的依据
设计
编写说明语句的文法
将类型信息作为类型描述 T 的属性 type 和变量表 L 的属性 in。
目的
分析说明语句 D,获取变量的类型信息
描述类型信息提取的属性文法
entry 单词 id 的属性(符号表入口)
addtype 在符号表中为变量填加类型信息
产生式
语义规则
D → T L
:=
T → int
:= ‘integer’
T → real
:= ‘real’
L → L1,id
:=
addtype( , )
L → id
addtype( , )
属性文法的作用
抽象描述语义处理的要求
语义信息及其计算关系
适用于各种语义处理(分析、翻译、计算)
语义处理的步骤
属性求值计算、断言检查
语义处理算法的描述方法
一种通用的语义处理算法设计方法
属性分类:
综合属性
从其子结点的属性值计算出来的;
如:、
继承属性
从其兄弟结点和父结点的属性值计算出来的
如:
固有属性(单词属性)
属性的计算
构造语法分析树,填加响应的语义规则
综合属性
自底向上按照语义规则来计算各结点的综合属性值
继承属性
需要探讨计算次序