XL (プログラミング言語)
XL1フェーズはXL0構文木に対しての一連の操作として定義されている。操作は様々なコンパイラプラグインとして提供され、それぞれ構文木の形に従って呼び出される。
あるプラグインによって、他のプラグインを楽に記述できるようにするためにtranslateとtranslationという特別な構造が提供されている。quote構造は構文木を生成する。これらの構造を用いて、ZeroRemovalという意味のないゼロ加算とゼロ乗算を計算するプラグインを、以下に示す。
プラグインはコマンドラインを使ってファイル全体に適用させることができる。また、以下のようにpragma表記を使って、ソースコード内だけで完結させることができる。
XL1フェーズはXLSemanticsに代表されるような、沢山のプラグインを持ち、それらはプログラミングでの主な概念であるサブルーチン、データ型、変数、宣言、定義に加えて、基本的な構造化プログラミングに使う条件分岐や繰り返しを提供する。