语义分析和中间代码生成-编译原理-07-(一).pdf
文本预览下载声明
《编译原理》
(Principles of Compiling)
主 讲:蒋宗礼
2013/8/22 Thursday 1
上次课主要内容——语法制导翻译
完成语法翻译的目的
实现高级语言源程序到目标语言程序的等价变化
源语句的结构与目标代码结构的对应
做法
E→E + E E.val:=E .val+E .val
1 2 1 2
依据产生式设计语义处理子程序——语法制导翻译
一种实现——属性文法 A=(G, V, F)
用属性表示一些语义值
2013/8/22 Thursday 2
上次课主要内容——属性计算与分类
继承属性
• A→X X …X X .in=f(c,c ,c ,…,c )
1 2 n i 1 2 k
• 1≤ki≤n
A c
x1 x2 … xk xn
c X .in
1 c c i c
2 k n
2013/8/22 Thursday 3
上次课主要内容——属性计算与分类
综合属性
A→X X …X A.s=f(c ,c ,…,c )
1 2 n 1 2 k
A A.in A.s
x1 c1 x2 c xn c
2 n
•固有属性是一种综合属性
2013/8/22 Thursday 4
上次课主要内容
属性的计算时机
属性的计算时机
综合属性值——在归约时进行计算
是其“后代”的综合结果,所以在处理完成后获得
继承属性值——在派生时进行计算
变量的继承属性用于该变量的相关处理,所以通常在
处理此变量前完成计算
固有属性值——单词属性(值)在词法分析时完
成
2013/8/22 Thursday 5
上次课主要内容——S-属性定义
只含综合属性的属性文法,又称为S-属性
文法
产生式
显示全部