この実験のソース言語であるMiniML言語は,言語仕様で説明するいくつかの追加機能を除き,講義「プログラミング言語処理系」のテキスト(以降,単に講義テキストと呼ぶ)中のML言語と基本的に同じであり,let rec構文を使って再帰的な関数を定義できる.講義テキストの5章では,ML言語のコンパイラを解説するにあたり,関数を定義できるソースコード中の位置をトップレベルのみに制限していたが,MiniML言語ではそのような制限を設けず,3.5節で作成したインタプリタ版のML言語と同等の表現力を備えるものとする.言い換えるなら,5章で扱った言語とは異なり,let rec式やfun式をプログラム中の任意の位置に書くことができ,さらに,それらの式を評価することによって得られる関数値を第一級の値 (first-class value)として扱う(関数呼出しの引数や返り値にしたり,変数やデータ構造の中に格納する)ことが可能である.

また,このフェーズでは,クロージャ変換の前に,言語仕様で説明するrecur式がプログラム中の末尾位置にだけ書かれていることの検査も行う.この検査自身も一つのフェーズと考えられなくはないが,プログラムの形や中間表現形式を変えるわけではなく,また,他のフェーズと比較し簡単な処理で済むため構文解析の直後に行うことにする.正規形へ変換した後で検査することも不可能ではないが,(抽象構文木の構造としてそのまま残っている)ソースプログラムの構造を異なる構造へと変形する前に検査を行う方が,より分かりやすく実装できるはずである.