正在加载图片...
72节要点 属性文法(语法制导的定义)( Syntax-Directed Definition) 形式:CFG的每个产生式A→α对应与之相关联的一个语义规则( semantIc rules)集合,每条规则形如b=f(cl,c2,,ck),其中f是一个函数,b,c1,c2,…,k 是该产生式中文法符号的属性( attributes),b有两个可能:(1)是A的一个属 性,cl,c,…,ck是产生式右部文法符号的属性或A的其它属性称b是A的综合 属性( synthesized attribute),(2)是产生式右部某个文法符号x的一个属性并且 c1,c2,,q是A或产生式右部任何文法符号的属性,则称b是文法符号ⅹ的继承 属性( inherited attribute 函数f通常以表达式的形式出现。 有时,某些语义规则的目的只是为了表达副作用,这类语义规则可以表达为 过程调用或代码段。这可以理解为是定义相关产生式左部非终结符A的综合属 性值,只是没有把此虚设的属性和=号显现出来而已。 2.综合属性用于“自下而上传递信息,而继承属性用于自上而下传递信息。 3.基于属性文法的处理,或语法制导的翻译( Synta- Directed Translation 两类处理方法:(1)通过遍历分析树进行属性计算(树遍历方法);(2)语 法分析遍的同时进行属性计算( On-the-fly方法,即一遍扫描方法 树遍历方法步骤1)构造对应输入串的语法分析树;2)构造属性依赖图; (3)若该依赖图是无圈的,则按造此无圈图的_种拓扑排序( topological sort) 对分析树进行遍历,则可以计算所有的属性。依赖图的概念和构造方法见教材7.2 节要点: 1. 属性文法(语法制导的定义)(Syntax-Directed Definition)。 形式:CFG 的每个产生式 A→ 对应与之相关联的一个语义规则(semantic rules)集合,每条规则形如 b:=f(c1, c2, …, ck),其中 f 是一个函数,b,c1, c2, …, ck 是该产生式中文法符号的属性(attributes),b 有两个可能:(1)是 A 的一个属 性, c1, c2, …, ck 是产生式右部文法符号的属性或 A 的其它属性,称 b 是 A 的综合 属性(synthesized attribute),(2)是产生式右部某个文法符号 x 的一个属性,并且 c1, c2, …, ck 是 A 或产生式右部任何文法符号的属性,则称 b 是文法符号 x 的继承 属性(inherited attribute)。 函数 f 通常以表达式的形式出现。 有时,某些语义规则的目的只是为了表达副作用,这类语义规则可以表达为 过程调用或代码段。这可以理解为是定义相关产生式左部非终结符 A 的综合属 性值,只是没有把此虚设的属性和:=号显现出来而已。 2. 综合属性用于“自下而上”传递信息,而继承属性用于“自上而下”传递信息。 3. 基于属性文法的处理,或语法制导的翻译(Syntax-Directed Translation)。 两类处理方法:(1)通过遍历分析树进行属性计算(树遍历方法);(2)语 法分析遍的同时进行属性计算(On-the-fly 方法,即一遍扫描方法)。 树遍历方法步骤:(1)构造对应输入串的语法分析树;(2)构造属性依赖图; (3)若该依赖图是无圈的,则按造此无圈图的一种拓扑排序(topological sort) 对分析树进行遍历,则可以计算所有的属性。依赖图的概念和构造方法见教材
向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有