AST
抽象構文木
Abstract Syntax Tree
生成規則に則って作られた、文法に完全に一対一で対応した木
「抽象」なので具体的ではない
空白や、括弧や行末セミコロンを省いたりする
括弧などは意味は同じだが表現が異なるだけ
本質情報のみを保持している
文法が多少変更された程度でASTの定義に影響がないように慎重に定義する必要がある
そのための中間層でもある
最適化、目的コード生成の処理に都合の良い形をしている
ASTの対義語は
CST
というらしい(?)
ref
AST explorer
https://astexplorer.net/
ast関連の開発ではよく使われる
関連
Python ASTジェネレーター
Go AST ジェネレーター
JavaScript AST ジェネレーター