当你创建一个分析树时, 它包含的细节比实际需要的更多。因此, 编译器解析语法树非常困难。以下面的解析树为例:
文章图片
- 在解析树中, 大多数叶子节点是其父节点的单个子节点。
- 在语法树中, 我们可以消除这些额外的信息。
- 语法树是解析树的变体。在语法树中, 内部节点是运算符, 叶子是操作数。
- 当以树形结构表示程序时, 通常使用语法树。
文章图片
【解析树和语法树】抽象语法树可以表示为:
文章图片
抽象语法树是编译器中的重要数据结构。它包含最少的不必要信息。
抽象语法树比解析树更紧凑, 并且编译器可以轻松使用它。