解析树和语法树

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

解析树和语法树

文章图片
  • 在解析树中, 大多数叶子节点是其父节点的单个子节点。
  • 在语法树中, 我们可以消除这些额外的信息。
  • 语法树是解析树的变体。在语法树中, 内部节点是运算符, 叶子是操作数。
  • 当以树形结构表示程序时, 通常使用语法树。
句子id + id * id将具有以下语法树:
解析树和语法树

文章图片
【解析树和语法树】抽象语法树可以表示为:
解析树和语法树

文章图片
抽象语法树是编译器中的重要数据结构。它包含最少的不必要信息。
抽象语法树比解析树更紧凑, 并且编译器可以轻松使用它。

    推荐阅读