Abstract
Continuation-based Web servers provide advantages over traditional Web application development through the increase of expressive power they allow. This leads to fewer errors and more productivity for the programmers that adopt them. Unfortunately, existing implementation techniques force a hard choice between scalability and expressiveness.
Our technique allows a smoother path to scalable, continuation-based Web programs. We present a modular program transformation that allows scalable Web applications to use third-party, higher-order libraries with higher-order arguments that cause Web interaction. Consequently, our system provides existing Web applications with more scalability through significantly less memory use than the traditional technique.
- }}Henry Cejtin, Suresh Jagannathan, and Richard Kelsey. Higher- order distributed objects. ACM Transactions on Programming Languages and Systems, September 1995. Google Scholar
Digital Library
- }}John Clements, Matthew Flatt, and Matthias Felleisen. Modeling an algebraic stepper. In European Symposium on Programming, April 2001. Google Scholar
Digital Library
- }}William D. Clinger, Anne H. Hartheimer, and Eric M. Ost. Imple- mentation strategies for first-class continuations. Higher Order and Symbolic Computation, 12(1):7--45, 1999. Google Scholar
Digital Library
- }}Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Links: Web programming without tiers. In Formal Methods for Components and Objects, 2006. Google Scholar
Digital Library
- }}Stephane Ducasse, Adrian Lienhard, and Lukas Renggli. Seaside - a multiple control flow web application framework. In European Smalltalk User Group - Research Track, 2004.Google Scholar
- }}R. Kent Dyvbig, Simon Peyton Jones, and Amr Sabry. A monadic framework for delimited continuations. Journal of Functional Programming, 17(6):687--730, 2007. Google Scholar
Digital Library
- }}Matthias Felleisen and Robert Hieb. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 102:235--271, 1992. Google Scholar
Digital Library
- }}M. J. Fischer. Lambda calculus schemata. ACM SIGPLAN Notices, 7(1):104--109, 1972. In the ACM Conference on Proving Assertions about Programs. Google Scholar
Digital Library
- }}Cormac Flanagan, Amr Sabry, Bruce F. Duba, and Matthias Felleisen. The essence of compiling with continuations. SIGPLAN Notices, 39(4):502--514, 2004. Google Scholar
Digital Library
- }}Matthew Flatt and PLT. Reference: Racket. Technical Report PLT-TR2010-1, PLT Inc., June 7, 2010. http://racket-lang.org/tr1/.Google Scholar
- }}Matthew Flatt, Gang Yu, Robert Bruce Findler, and Matthias Felleisen. Adding delimited and composable control to a production programming environment. In International Conference on Functional Programming, 200URL http://www.cs.utah.edu/plt/delim-cont/. Google Scholar
Digital Library
- }}Martin Gasbichler and Michael Sperber. Final shift for call/cc:: direct implementation of shift and reset. SIGPLAN Notices, 37 (9):271--282, 2002. Google Scholar
Digital Library
- }}Paul Graham. Lisp for web-based applications, 2001. http://www.paulgraham.com/lwba.html.Google Scholar
- }}Robert Hieb, R. Kent Dybvig, and Carl Bruggeman. Representing control in the presence of first-class continuations. In ACM SIGPLAN Conference on Programming Language Design and Implementation, 1990. Google Scholar
Digital Library
- }}John Hughes. Generalising monads to arrows. Science of Computer Programming, 37(1-3):67--111, May 2000. Google Scholar
Digital Library
- }}Thomas Johnsson. Lambda lifting: transforming programs to re- cursive equations. In Functional Programming Languages and Computer Architecture, pages 190--203, 1985. Google Scholar
Digital Library
- }}Shriram Krishnamurthi, Peter Walton Hopkins, Jay McCarthy, Paul T. Graunke, Greg Pettyjohn, and Matthias Felleisen. Implementation and Use of the PLT Scheme Web Server. Higher-Order and Symbolic Computation, 2007. Google Scholar
Digital Library
- }}Jacob Matthews, Robert Bruce Findler, Paul T. Graunke, Shriram Krishnamurthi, and Matthias Felleisen. Automatically restructuring programs for the Web. Automated Software Engineering, 11(4):337--364, 2004. Google Scholar
Digital Library
- }}Jay McCarthy. Automatically restful web applications or, marking modular serializable continuations. In International Conference on Functional Programming, 2009. Google Scholar
Digital Library
- }}Greg Pettyjohn, John Clements, Joe Marshall, Shriram Krishna- murthi, and Matthias Felleisen. Continuations from generalized stack inspection. In International Conference on Functional Programming, September 2005. Google Scholar
Digital Library
- }}Gordon D. Plotkin. Call-by-name, call-by-value, and the lambda- calculus. Theoretical Computer Science, 1975.Google Scholar
- }}Christian Queinnec. The influence of browsers on evaluators or, continuations to program web servers. In International Conference on Functional Programming, pages 23--33, 2000. Google Scholar
Digital Library
- }}Peter Thiemann. Wash server pages. Functional and Logic Programming, 2006. Google Scholar
Digital Library
- }}Noel Welsh and David Gurnell. Experience report: Scheme in commercial web application development. In International Conference on Functional Programming, September 2007. Google Scholar
Digital Library
Index Terms
The two-state solution: native and serializable continuations accord
Recommendations
The two-state solution: native and serializable continuations accord
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsContinuation-based Web servers provide advantages over traditional Web application development through the increase of expressive power they allow. This leads to fewer errors and more productivity for the programmers that adopt them. Unfortunately, ...
Automatically RESTful web applications: marking modular serializable continuations
ICFP '09: Proceedings of the 14th ACM SIGPLAN international conference on Functional programmingContinuation-based Web servers provide distinct advantages over traditional Web application development: expressive power and modularity. This power leads to fewer errors and more interesting applications. Furthermore, these Web servers are more than ...
Automatically RESTful web applications: marking modular serializable continuations
ICFP '09Continuation-based Web servers provide distinct advantages over traditional Web application development: expressive power and modularity. This power leads to fewer errors and more interesting applications. Furthermore, these Web servers are more than ...







Comments