属性文法是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”(称为属性)。
属性分为两类:
(1)综合属性
用于“自下而上”传递信息
在语法树中,一个结点的综合属性的值,由其子结点的属性值确定
S—属性文法:仅仅使用综合属性的属性文法
(2)继承属性
用于“自上而下”传递信息。
在语法树中,一个结点的继承属性由此结点的父结点和/或兄弟结点的某些属性确定
刚开始接触的时候对于继承属性没有很直接的概念,通过学习对它有了一定的了解。
举两个具体的例子来说明:
(1)综合属性:
考虑语句:a = b + c
对应的文法如下:
E-> T + T
T-> id
其中,属性val是文法符号的数值,属性lexval是由词法分析器返回的数值。为id1+id2构建语法分析树,其中,id1、id2的lexval属性分别为2、8
可见E的属性值由子节点T的属性决定,而T由子节点id1和id2的属性值确定。
(2)继承属性:
考虑语句:int a,b,c
对应的文法如下:
D->int L
L->L, id | id
推导的步骤为D->L->L,id->L,id,id->id,id,id
对应的分析树如下:
图中箭头方向为属性值传递的方向。比如L的属性由其兄弟节点“int“决定,a,b, c的属性由其父节点的属性决定。
继续阅读与本文标签相同的文章
下一篇 :
深度学习中,还有这15个未解难题
-
东京车展丰田玩把大的 人工智能自动驾驶都有 新RAV4也将混动亮相
2026-05-18栏目: 教程
-
“北斗+”为长沙公共安全“站岗”
2026-05-18栏目: 教程
-
滴滴与清华大学成立未来出行联合研究中心
2026-05-18栏目: 教程
-
三星S10被曝屏下指纹存在安全漏洞:任何人都还可以解锁
2026-05-18栏目: 教程
-
进博会“催生”上海首个保税展示展销场所
2026-05-18栏目: 教程
