XL (プログラミング言語)
XLは4つの異なるレベルで定義されている:
XL0: 入力文字列を構文木に変換する方法を定義する。
XL1: C++に相当する機能を備えた基本言語を定義する。
XL2: 基本データ型と演算子を含む標準ライブラリを定義する。
XLR: XL0を基にしたXLの動的ランタイムを定義する。
XLにはプリミティブ型や予約語がない。整数や加算演算子といった、有用なデータ型と演算子は、すべて標準ライブラリ(XL2)で定義されている。XL1は異なる実行環境間で移植可能である。一方でXL2にはそのような保証はなく、もしCPUが浮動小数点数の乗算を実装していなければ、それに対応した演算子の定義は標準ライブラリから欠落しているかもしれず、また、浮動小数点数の乗算はコンパイル時エラーとなるかもしれない。
XLで書かれたHello Worldは次のようになる。
より大規模なプログラムにふさわしいスタイルで書かれた別のプログラムは次のようになる。
XLRでの階乗の再帰的な実装は次のようになる。