抽象構文木
Abstract Syntax Tree
AST と略される。
何か?
言語の構文を木のデータ構造で表現したもので、本質的な部分のみに削り落としたもの。
ソースの具体的な文字列などすべての情報をそのまま残したものは具象構文木とか解析木(parse tree)と呼ばれる。
なぜ使われるのか?
コンパイラやインタプリタでは、与えられたテキストのままで処理をするのは難しいため、扱いやすい木のデータ構造にしてから取り扱う。
親子関係、前後関係がはっきりする。
パターンマッチングがやりやすくなる。
どうやって作るのか?
構文解析で具象構文木を作ってから抽象構文木を抽出する エラー表示時などで文字位置などの情報を残しておきたいため、こちらの方がよく使われる。
構文解析でいきなり抽象構文木を作る