[plt-scheme] Continuations
> I think others have worked on transforming programs (by CPSing and
> making free variables explicit) to support serialized continuations,
> but I'm not sure of the details.
Matthew is pointing out that you can always CPS your program, but he's
alluding, amongst other things, to this work, which does better:
Continuations from Generalized Stack Inspection
http://www.cs.brown.edu/~sk/Publications/Papers/Published/pcmkf-cont-from-gen-stack-insp/
Implementing first-class continuations can pose a challenge if the
target machine makes no provisions for accessing and re-installing
the run-time stack. In this paper, we present a novel translation
that overcomes this problem. In the first half of the paper, we
introduce a theoretical model that shows how to eliminate the
capture and the use of first-class continuations in the presence of
a generalized stack inspection mechanism. The second half of the
paper explains how to translate this model into practice in two
different contexts. First, we reformulate the servlet interaction
language in the PLT Web server, which heavily relies on first-class
continuations. Using our technique, servlet programs can be run
directly under the control of non-cooperative web servers such as
Apache. Second, we show how to use our new technique to copy and
reconstitute the stack on MSIL.Net using exception handlers. This
establishes that Scheme's first-class continuations can exist on
non-cooperative virtual machines.
Perhaps something like this would be of value to you.
Shriram