タグ

ブックマーク / www.is.s.u-tokyo.ac.jp (1)

  • compiler resume 4

    情報科学実験II資料 (4) 最適化(1) 田浦 29/10/98 η reduction (または末尾呼び出しの最適化) 簡単にできて, なおかつ非常に重要な最適化を取り上げる. これがきれいにで きるのを見て, CPSはエライと思って欲しい. 例として, 以下のような関数定義をCPS変換してみる. (define (f x) (g (+ x 1))) 得られるCPS関数定義は, 以下のようなものであろう. [f (k6 x) (+ [x 1] [v9] [(fixs ([k7 (r8) (appb k6 (r8))]) (appb g (k7 v9)))])] ここで, k7が, gからreturnした後の計算を実行する継続である. しかし, 見てもわかるように, k7が実際に実行する仕事は, 受けとった 値(つまりgの返り値)を, そのままfの継続(k6)に渡してい るだけである.

    RanTairyu
    RanTairyu 2007/03/25
  • 1