CPS変換
ここによるとコンパイラの中間表現として CPS(Continuation Passing Style) v.s. ANF(A - Normal Form) という構図があるらしい。
自分の中では Appel が CPS をプッシュしまくっているので CPS こそが現時点での最高のものかと思っていたが Haskell では ANF が用いられているし、両方のメリット・デメリットがどうなっているのか気になるところ。
これから調べていきたい。
- Compiling with Continuations, Continued
- The 90 minute Scheme to C compiler
- 例外処理機構を備えた命令型言語のCPS変換とその定式化
- 継続渡し形式(CPS)
- 情報科学実験II資料 (4) CPS変換のアルゴリズム
- CPS形式への変換による末尾最適化
- Compiling with Continuations
- Lisp in Small Pieces
- Utah 大学の Matt Might さんのサイトから