Sat Jan 2 15:33:11 CET 2010

ANF or not?

As far as I understand now:

* CPS makes sure that the central abstraction form is the closure.
  The continuation is then just a closure.  I don't think I can use
  this as I need an explicit stack form for continuations, to be able
  to attach continuation marks.

* ANF makes sure there are less forms that create continuation framse
  (let, seq).  All the other forms (if, set!, apply, prim-apply) can take
  values from the environment and can be executed immediately.

Reading the intro of [1].  CPS's greatest use is that the full lambda
calulus provides an OS, leading to more transformation rules as
compared to lambda_v with a beta_v strict reduction rule.

The ANF's greatest use is that most of these transfomations can be
carried over to a style with implicit continuations.

[1] http://lambda-the-ultimate.org/node/69