Program Transformations Tutorial

Order of Operations

  1. Fully higher-order CPS interpreter
  2. Lift lambdas and RI env, closures
  3. Marvel at first order structure
  4. Add control operators
  5. Whole-program CPS interpreter
  6. RI wrt env, clos, k
  7. Registerize
  8. Trampolinize
  9. “pc2c magic”, w/very little explanation b/c I don’t think I can adequate explain what that code does
  10. voila ./fact 5 = 120