[plt-scheme] Behind the scenes, is everything running using continuation passing style?

From: Arthur Nunes-Harwit (anh at cs.rit.edu)
Date: Wed Nov 14 09:13:58 EST 2007

> If you *really* want to understand what's going on with CPS for
> compilation, read also the paper on A-normalization:
>  PLDI 93 Flanagan, Sabry, Duba and Felleisen
>  The Essence of Compiling with Continuations
>  http://www.cs.rice.edu/CS/PLT/Publications/Scheme/pldi93-fsdf.ps.gz

   An extension of this work is _A Reflection on Call-by-Value_ by Sabry 
and Wadler.  One of the results is that the CPS language and the ANF 
language are isomorphic.  (One might consider their CPS language somewhat 
different in that continuations are not values.)  Thus I tend to take the 
(radical?) view these compilation techniques as equivalent.  A 
linearization based on a transformation to post-fix notation that 
subsequently becomes stack-machine code (see Norvig's Paradigms of AI 
Programming) strikes me as very different.

   As others have said, my impression is that ANF has become a very popular 
intermediate representation.  While it is not CPS, it is surely a close 


Posted on the users mailing list.