Continuation Passing Style

(CPS) An intermediate language for Scheme that implements continuation passing style. The CPS language is semantically clean and is used for the SML/NJ compiler.

["Rabbit: A Compiler for Scheme", G.L. Steele, AI-TR-474, MIT (May 1978)].

["Compiling With Continuations", A. Appel, Cambridge U Press 1992].

continuation passing style




(CPS) A style of programming in which every user function f takes an extra argument c known as a "continuation". Whenever f would normally return a result r to its caller, it instead returns the result of applying the continuation to r. The continuation thus represents the whole of the rest of the computation. Some examples:

 normal (direct style)		continuation passing style

 square x = x * x			square x k = k (x * x)

 g (square 23)				square 23 g

 (square 3) + 1				square 3 ( \ s . s + 1 )