タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

最適化に関するlong_long_floatのブックマーク (1)

  • 「末尾最適化」を正しく理解する - ブートストラッピングでコンパイラを作る日記

    以下の記事でPythonRubyの末尾再帰関数をループに変換する手法が「末尾再帰最適化」や「末尾呼び出し最適化」として紹介されているのですが、これらの用語を使うのは間違いです。 紹介されている手法(動的束縛を利用して制御フローを変形する手法)自体は大変面白いですね。 Pythonで末尾再帰最適化をする。 Rubyで末尾再帰最適化をする。 参考文献として以下を挙げておきます。 William D. Clinger "Proper Tail Recursion and Space Efficiency" ちゃんと読み直していないので、以下の説明に間違いがあるかも知れません。その場合はご指摘お願いします。 まず「末尾呼び出し(Tail Call)」は関数の一番最後の式(末尾式)であって、関数呼び出しであるものを指します。 void foo() { bar(); baz(); /* 末尾呼び出し

    「末尾最適化」を正しく理解する - ブートストラッピングでコンパイラを作る日記
  • 1