[plt-scheme] web programming, continuation, CPS transform, etc.

From: Yin-So Chen (yinso.chen at gmail.com)
Date: Mon Apr 30 17:24:35 EDT 2007

Hi all -

I ran across the paper
Restructuring Programs for the Web) and am very intrigued by its
findings.  I have suspected that a continuation-based web server has
scalability limitations described by the paper, and the paper for me
provided the aha answer, until I read a subsequent paper that also talks
about CPS not being the nirvana (
http://www.ccs.neu.edu/scheme/pubs/icfp05-pcmkf.pdf).  I am still digesting
the second paper as it far stretches my theoretical knowledge, but I am
wondering about the followings:

1) Although these paper were published a while ago, it seems that the
findings have not made their way into PLT web server implementation - is
that correct?  i.e. I want to confirm that the limitation described in the
papers still exist in PLT web server (at least as of v360).

2) None of these paper actually publish the implementations - I am curious
if the implementations are available somewhere?  If they are not for
whatever reasons, I understand, but just want to know if it was my own
inability to find the source (but definitely interested to study how it's
done, see #3).

3) Are there good links/pointers/implementations on CPS and ANF
transformation?  I can't find a good description of ANF (my google terms are
probably wrong).  With CPS I can find techniques from readscheme, but they
appear more for manual transformation.  For automated transformation it
seems that the transformer must know scheme well (i.e. knowledge of if,
cond, let, etc) and appears very complex, and it also seem like operations
like map, loop, or error handling are very difficult to transform into CPS.

4) Is PLT web server moving toward the paper's findings?  If not, why not?

5) I am sure to have many follow-ons, but don't want to overwhelm the list
with questions ;)


...continuous learning...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20070430/b1941be5/attachment.html>

Posted on the users mailing list.