分析树和语法树

2025年1月12日 | 1分钟阅读

当你创建一个解析树时,它包含的细节比实际需要的更多。因此,编译器很难解析解析树。以下面的解析树为例

Parse tree and Syntax tree
  • 在解析树中,大多数叶节点都是其父节点的单个子节点。
  • 在语法树中,我们可以消除这些额外的信息。
  • 语法树是解析树的一种变体。在语法树中,内部节点是运算符,叶子是操作数。
  • 语法树通常用于在树结构中表示程序。

句子 **id + id * id** 将具有以下语法树

Parse tree and Syntax tree 1

抽象语法树可以表示为

Parse tree and Syntax tree 2

抽象语法树是编译器中重要的数据结构。它包含最少的非必要信息。

抽象语法树比解析树更紧凑,并且可以很容易地被编译器使用。


下一个主题后缀表示法