The fundamental concept of continuations

Matthias Blume find at my.address.elsewhere
Tue Oct 9 08:50:16 EDT 2007


"." <foo at bar.biz> writes:

> On Tue, 09 Oct 2007 05:15:49 +0000, gnuist006 wrote:
>
>> Again I am depressed to encounter a fundamentally new concept that I
>> was all along unheard of. Its not even in paul graham's book where i
>> learnt part of Lisp. Its in Marc Feeley's video.
>> 
>> Can anyone explain:
>> 
>> (1) its origin
> One of the lambda papers, I think.  I don't remember which.

This is a common misconception.  There is very little that
originated from the "lambda" papers.  But they did a marvelous job at
promoting some of the ideas that existed in the PL community for
years.

As for the concept of continuations, there is Scott and Strachey's
work on denotational semantics, and there is Landin's J operator.
(There's probably more that I am forgetting right now.)

>> (6) any good readable references that explain it lucidly ?
>

One of the most lucid explanations of definitional interpreters --
including those that are based on continuation-passing -- are
explained in J. Reynolds' famous 1971 "Definitional Interpreters for
Higher-Order Functions" paper.  (It has been re-published in 1998 in
HOSC.)  The paper also explains how to perform defunctionalization,
which can be seen as a way to compile (and even hand-compile)
higher-order programs.

Matthias



More information about the Python-list mailing list