- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
第5章 语法制导翻译技术
LI Wensheng, SCST, BUPT
知识点:语法制导定义、翻译方案
S-属性定义、L-属性定义
S-属性定义的翻译
L-属性定义的翻译
语法制导翻译技术
语义分析涉及到语言的语义
形式语义学的研究开始于20世纪60年代初
形式语义学可以分为三类
– 操作语义学:通过说明程序在一个机器中是如何执行的来定义程序的
语义,着重模拟数据加工过程中计算机系统的操作
– 指称语义学:使用数学函数来描述程序和程序的构成,函数通过把语
义值联系到正确的语法结构来描述程序的语义,主要描述数据加工的
结果
– 公理语义学:把数理逻辑应用于语言的语义,语言结构与谓词转换器
联系在一起,语言结构的行为以命题刻画,通过描述程序执行对程序
断言的影响来定义程序、语句或语言结构的语义,主要用于程序正确
性证明
W
e
n 语法制导翻译技术
s
h
e
n
g
– 多数编译程序普遍采用的一种技术
L
i
– 比较接近形式化
B
U
P
T
2
语法制导翻译技术
– 根据翻译目标的要求确定每个产生式所包含的语义;
– 根据产生式包含的语义,分析文法中每个符号的语义;
– 把这些语义以属性的形式附加到相应的文法符号上;
– 根据产生式的语义,给出符号属性的求值规则 (即语义规
则),从而形成语法制导定义。
– 在语法分析过程中,当使用该产生式时,根据语义规则对
相应的属性进行求值,从而完成翻译。
例如:考虑算术表达式文法 E→E +T E.val=E .val+T.val
1 1
– 总目标:计算表达式的值 E→T E.val=T.val
T→T *F T.val=T .val*F.val
– 产生式 E→E +T 的语义:表达式 1 1
1
的值由两个子表达式的值相加得到 T→F T.val=F.val
F→(E) F.val=E.val
W
e – 分析每个符号的语义,并以属性的
n F→digit F.val=digit.val
s
h
e
n
形式记录:E.val、E .val、T.val
g
1
L
i
– 求值规则:E.val=E .val+T.val
1
B – 语法制导定义:产生式 语义规则
U
P
T
3
语法制导翻译技术(续)
例如:考虑算术表达式文法
– 总目标:检查表达式的类型
– 产生式 E→E1+T 的语义:
文档评论(0)