属性文法

属性文法是上下文无关文法的扩展,用于描述语义信息。包括综合属性(自底向上求值)和继承属性(自顶向下求值)。文中通过算术表达式的例子展示了属性文法如何定义和计算属性,例如E和T的值属性。属性文法的语法分析树每个节点都有可能带有的属性值集合,当所有属性值计算完成,即得到完全属性的树。
摘要由CSDN通过智能技术生成



属性文法是上下文无关文法在语义上的扩展,可定义为如下三元组: 

A = (G , V , E) ; G(文法);V(属性集);E(语义规则集)。

⑴ 属性 代表与文法符号相关的信息,这里主要指语义信息(类型、种类、值和值地址…);文法产生式中的每个文法符号都附有若干个这样的属性。

(2) 属性集  V是有穷的属性集,每个属性与文法的一个终结符或非终结符关联,属性加工的过程即是语义处理的过程。

 F是关于属性的属性断言或一组属性的计算规则(称为语义规则)。

属性分两类(按属性求值规则区分): 

综合属性:其值由子女属性值来计算(自底向上求值);

继承属性:其值由父兄属性值来计算(自顶向下求值)

属性文法构造示例:

算术表达式的属性文法

※ 设:X.val 为文法符号 X 的值属性; 

※下述属性文法用于算术表达式的求值运算:

E -> E1 + T ; || E.val:= E1.val + T.val

E -> E1 - T ; || E.val:= E1.val - T.val

E -> T ; || E.val:= T.val

T -> T1 * F ; || T.val:= T1.val * F.val

T -> T1 / F ; || T.val:= T1.val / F.val 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值