第五章语法制导翻译技术.pdf
文本预览下载声明
第5章 语法制导翻译技术
LI Wensheng, SCS, BUPT
知识点:语法制导定义、翻译方案
S-属性定义、L-属性定义
S-属性定义的翻译
L-属性定义的翻译
语法制导翻译技术
语义分析涉及到语言的语义
形式语义学的研究开始于20世纪60年代初
形式语义学可以分为三类
操作语义学:通过说明程序在一个机器中是如何执行的来定义程序的
语义,着重模拟数据加工过程中计算机系统的操作
指称语义学:使用数学函数来描述程序和程序的构成,函数通过把语
义值联系到正确的语法结构来描述程序的语义,主要描述数据加工的
结果
公理语义学:把数理逻辑应用于语言的语义,语言结构与谓词转换器
联系在一起,语言结构的行为以命题刻画,通过描述程序执行对程序
断言的影响来定义程序、语句或语言结构的语义,主要用于程序正确
性证明
W
e
n 语法制导翻译技术
s
h
e
n
g
多数编译程序普遍采用的一种技术
L
i
比较接近形式化
B
U
P
T
2
语法制导翻译技术
根据翻译目标的要求确定每个产生式所包含的语义;
根据产生式包含的语义,分析文法中每个符号的语义;
把这些语义以属性的形式附加到相应的文法符号上;
根据产生式的语义,给出符号属性的求值规则(即语义规
则),从而形成语法制导定义。
在语法分析过程中,当使用该产生式时,根据语义规则对
相应的属性进行求值,从而完成翻译。
例如:考虑算术表达式文法 EE +T E.val=E .val+T.val
1 1
翻译目标:计算表达式的值 ET E.val=T.val
TT *F T.val=T .val*F.val
产生式 EE +T 的语义:表达式 1 1
1
的值由两个子表达式的值相加得到 TF T.val=F.val
F(E) F.val=E.val
W
e 分析每个符号的语义,并以属性的
n Fdigit 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
语法制导翻译技术(续)
例如:考虑算术表达式文法
翻译目标:检查表达式的类型
产生式 EE +T 的语义:表达式的类型由两个子表达式
显示全部