例real id.1,id2,id3的语法树和属性计算p172 D 依赖关系 (4) ⑤ 拓扑排序 T.type-real一 in=real in=r/入 .⑦ addtype real ⑥ real addtypeeal ⑨ ⑧ L2.in=real ida entr 自下而上无 法直接实现 addtype real 10 自上而下存在左 idi.entry 递归,可改造 2025/4/2 节目录 可☑16
2025/4/2 16 例real id1,id2,id3的语法树和属性计算 p172 D T L real L1 , id3 L2 , id2 id1 addtype .type=real .in=real .in=real .in=real 依赖关系 拓扑排序 自下而上无 法直接实现 .entry .entry .entry 自上而下存在左 递归,可改造 real addtype real addtype real ④ ⑤ ⑦ ⑥ ⑨ ⑧ ① ② ③ ⑩ 节目录
S-属性文法p173 S-attributed Definition S-attributed Grammar ■仅包含综合属性的语法制导定义 ◆对于所有A→X1X2.Xn, ◆A的属性计算仅用X1,X2,.,X的属性 ■自下而上计算属性 ■如算术表达式求值的属性文法 2025142 节目绿可)17
2025/4/2 17 S-属性文法 p173 S-attributed Definition S-attributed Grammar 仅包含综合属性的语法制导定义 对于所有A→X1X2.Xn, A的属性计算仅用X1,X2 ,. ,Xn的属性 自下而上计算属性 如 算术表达式求值的属性文法 节目录
L-属性文法p175 L-attributed Definition L-attributed Grammar ■包含综合属性和继承属性的语法制导定义 ◆对于所有A→X1X2.Xi-1Xi.Xn ◆X属性计算仅使用X1,X2.Xi-1的属性和A的 继承属性 ■自上而下计算属性 ■如说明语句的属性文法 2025/4/2 节目录)18
2025/4/2 18 L-属性文法 p175 L-attributed Definition L-attributed Grammar 包含综合属性和继承属性的语法制导定义 对于所有A→X1X2.Xi-1Xi .Xn Xi属性计算仅使用X1,X2.Xi-1的属性和A的 继承属性 自上而下计算属性 如 说明语句的属性文法 节目录
翻译模式p176 ■语法制导翻译的两种描述形式 ◆属性文法(语法制导定义) (Grammar Directed Definition) 语义的抽象说明,隐去实现细节 ◆翻译模式(Translation Scheme) 规定实现方法,表明计算次序 ■翻译模式的特征 ◆规定在语法分析中使用语义规则进行计算的次序 ◆保证当动作使用某属性时,该属性必须是可用的 ■翻译模式的构造方法 ◆将{语义动作}插入到产生式中的某个位置 2025142 ) 19
2025/4/2 19 翻译模式 p176 语法制导翻译的两种描述形式 属性文法(语法制导定义) (Grammar Directed Definition) 语义的抽象说明,隐去实现细节 翻译模式 (Translation Scheme) 规定实现方法,表明计算次序 翻译模式的特征 规定在语法分析中使用语义规则进行计算的次序 保证当动作使用某属性时,该属性必须是可用的 翻译模式的构造方法 将{语义动作}插入到产生式中的某个位置
表达式文法的翻译模式 1.E→E1+T E.val:=E1.val+T.val} 2.E→T {E.val:=T.val} 3.T→T1*F {T.val:=T1.val*F.val} 4.T→F {T.val:=F.val} 5.F→(E) F.val:=E.val} 6.F→1 F.val:=i.lexval} 2025/4/2 ☑☑20
2025/4/2 20 表达式文法的翻译模式 1. E→E1+T {E.val:=E1.val+T.val} 2. E→T {E.val:=T.val} 3. T→T1*F {T.val:=T1.val*F.val} 4. T→F {T.val:=F.val} 5. F→(E) {F.val:=E.val} 6. F→i {F.val:=i.lexval}