首页 > 试题广场 >

以下关于属性文法,说法不正确的是()

[单选题]
以下关于属性文法,说法不正确的是()
  • 属性文法是没有副作用的语法制导翻译
  • 终结符号可以有综合属性、但不能有继承属性
  • 一个结点的综合属性只能由其子节点或该节点本身的属性值来定义
  • 一个结点的继承属性只能通过其兄弟节点的属性值来定义

选项 D 不正确。

在属性文法中,继承属性是从父节点传递到子节点的属性,而综合属性是从子节点传递到父节点的属性。因此,继承属性的定义是基于父节点和兄弟节点的属性值,而不是只能通过兄弟节点的属性值来定义。

在属性文法中,一个结点的继承属性可以由它的父节点和兄弟节点的属性值来定义。例如,对于下面的语法树:

A
/ | \
B C D

假设结点 A 有一个继承属性 x,B 有一个综合属性 y,C 有一个综合属性 z,D 没有属性。那么 x 属性可以由 A 的父节点传递下来,也可以由 B 和 C 的属性值传递上来,即:

  • x(A) = f(x(parent(A)), y(B), z(C))
  • y(B) = g(x(A), ...)
  • z(C) = h(x(A), ...)

因此,选项 D 不正确。

编辑于 2023-04-12 15:50:59 回复(0)
是由父节点和兄弟节点一起定义
发表于 2022-04-11 09:28:32 回复(0)