📜  编译器解析树和语法树

📅  最后修改于: 2020-12-06 07:23:57             🧑  作者: Mango

解析树和语法树

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

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

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

抽象语法树可以表示为:

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

抽象语法树比解析树更紧凑,并且编译器可以轻松使用它。