编译原理6-3-S-属性文法.

  • 格式:ppt
  • 大小:100.50 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章 属性文法和语法制导翻译
6.1 6.2 6.3 6.4 6.5 属性文法 基于属性文法的处理方法 S-属性文法的自下而上计算 L-属性文法和自顶向下翻译 自下而上计算继承属性
6.3 S-属性文法的自下而上计算

综合属性 可以在分析输入符号串的同时由自下而上的 分析器来计算。 S-属性文法的翻译器通常可借助于LR分析器实现。 在对输入串进行语法分析的同时对属性进行计算。
TF
F (E) F digit
注:
ntop: 新的栈顶指针 ntop = top r +1 , r 产生式右边长度 如 F (E) 应为 val [top - 2 ] := val [top 1]
表6.6 翻译输入3*5+4n所作的动作
产 生 式 LEn 代 码 段 print (val [ top] ) 输入 State Val - 用到的产生式 3*5+4n -
F digit
+4n T*5
+4n T*F +4n T +4n E 4n E+ n E+4 n E+F
3-5
3-5 15 15 15- 15-4 15-4 F dight F dight T T*F E T
val [ntop ] := val [top 1]
n E+T
n E En L
E E1 + T val [ntop ] := val [top 2] + val [top] ET
Leabharlann Baidu*5+4n 3
*5+4n F *5+4n T 5+4n T*
3
3 3 3- F dight T F
T T1 * F val [ntop ] := val [top 2] * val [top] TF F (E)
15-4 T F
19 19- 19 L En E E+T

分析栈中的综合属性
假设语义规则 A. a := f( X.x, Y.y, Z.z) 对应于产生式 A→XYZ 假设综合属性是刚好在每次 归约前计算的

state val
... ...
X
Y
X.x
Y. y
top
Z
Z. z
... ...
图6.9 带有综合属性域的分析栈
表6.5 用LR分析器实现台式计算器 产 生 式 LEn E E1 + T ET T T1 * F val [ntop ] :=val [top 2] * val [top] val [ntop ] :=val [top 1] 代 码 段 print (val [ top] ) val [ntop ] :=val [top 2] + val [top]