末尾呼び出し最適化とは何か?
末尾呼び出し最適化は、末尾位置の呼び出しを、新しいフレームを割り当てる代わりに既存のスタックフレームを再利用するジャンプへ置き換える、コンパイラまたはランタイムの技術です。その結果、末尾呼び出しで表現された再帰は、ループとよく似て一定のスタック空間で実行されます。すべての言語やモードがこれを保証するわけではないため、利用できるかどうかは異なります。
なぜ重要か
末尾呼び出し最適化があれば、そうでなければスタックをあふれさせる再帰的なコードが、安全かつメモリ効率的になります。それが無いことが、ある言語が深い再帰を許すのに対し、別の言語がループを要求する理由です。
関連ガイド
What Is a Tail Call?A tail call is a function call that is the last action in a function, allowing the current stack frame to be…
What Is Trampolining?Trampolining is a technique that runs recursive calls as a loop by returning the next step instead of calling…
What Is a Continuation?A continuation represents the rest of a computation at a given point, as a value that can be invoked later to…