compiler.ast モジュールは Python の抽象構文木 AST を定義します。 AST では各ノードがそれぞれの構文要素をあらわします。 木の根は Module オブジェクトです。
抽象構文木 AST は、パーズされた Python ソースコードに対する 高水準のインターフェイスを提供します。Python インタプリタにおける parser モジュールと コンパイラは C で書かれおり、具体的な構文木を使っています。 具体的な構文木は Python のパーザ中で使われている構文と密接に関連しています。 ひとつの要素に単一のノードを割り当てる代わりに、ここでは Python の 優先順位に従って、何層にもわたるネストしたノードがしばしば使われています。
抽象構文木 AST は、compiler.transformer (変換器) モジュールに よって生成されます。transformer は組み込みの Python パーザに依存しており、 これを使って具体的な構文木をまず生成します。つぎにそこから抽象構文木 AST を 生成します。
transformer モジュールは、実験的な Python-to-C コンパイラ用に Greg Stein と Bill Tutt によって作られました。 現行のバージョンではいくつもの修正と改良がなされていますが、 抽象構文木 AST と transformer の基本的な構造は Stein と Tutt によるものです。