Paul Graunke, Robert Findler, Shriram Krishnamurthi, Matthias Felleisen. Automatically Restructuring Programs for the Web. Automated Software Engineering 2001.
The construction of interactive server-side Web applications
differs substantially from the construction of traditional
interactive programs. In contrast, existing Web programming
paradigms force programmers to save and re-store
control state between user interactions. We present an
automated transformation that converts traditional interactive
programs into standard CGI programs. This enables
reuse of existing software development methodologies. Furthermore,
an adaptation of existing programming environ-ments
supports the development of Web programs.
The technique is based on three well-known transformations that can be done automatically: conversion to CPS, lambda lifting, and defunctionalization. These partition the the program into separate interactive steps, so computation can halt conveniently between them. Small changes then convert the program into a standard CGI script.
A more casual description can be found in Shriram Krishnamurthi's lecture notes.
Posted to Software-Eng by Ehud Lamm on 11/16/01; 2:29:36 AM