末尾再帰
とは、再帰的な関数やプロシージャにおいて、自身の再帰呼び出しが、その計算における最後のステップになっているような再帰のパターンのことである。再帰にかかわらず一般に、そのような最後の呼び出しを末尾呼び出しという。呼び出しではなく、戻り先を保存しない飛び越し命令（いわゆる「GOTO文」）にコンパイラ最適化できるという特徴がある（#末尾呼出し最適化）。