Abstract
Continuation-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 prototypes; they are used in some real commercial applications. Unfortunately, they pay a heavy price for the additional power in the form of lack of scalability.
We fix this key problem with a modular program transformation that produces scalable, continuation-based Web programs based on the REST architecture. Our programs use the same features as non-scalable, continuation-based Web programs, so we do not sacrifice expressive power for performance. In particular, we allow continuation marks in Web programs. Our system uses 10 percent (or less) of the memory required by previous approaches.
Supplemental Material
- John Clements, Matthew Flatt, and Matthias Felleisen. Modeling an algebraic stepper. In European Symposium on Programming, April 2001. Google Scholar
Digital Library
- John Clements, Ayswarya Sundaram, and David Herman. Implementing continuation marks in JavaScript. In Scheme and Functional Programming Workshop, 2008.Google Scholar
- 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 Smal ltalk User Group -- Research Track, 2004.Google Scholar
- 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
- Roy T. Fielding and Richard N. Taylor. Principled design of the modern web architecture. ACM Transactions on Internet Technology, 2(2):115--150, 2002. 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. Composable and compilable macros. In International Conference on Functional Programming, 2002. Google Scholar
Digital Library
- Paul Graham. Lisp for web-based applications, 2001. http://www.paulgraham.com/lwba.html.Google Scholar
- Matthew Hertz, Yi Feng, and Emery D. Berger. Garbage collection without paging. In Programming Language Design and Implementation, pages 143--153, 2005. Google Scholar
Digital Library
- Peter Walton Hopkins. Enabling complex UI in Web applications with send/suspend/dispatch. In Scheme Workshop, 2003.Google Scholar
- John Hughes. Generalising monads to arrows. Science of Computer Programming, 37(1--3):67--111, May 2000. Google Scholar
Digital Library
- Shriram Krishnamurthi. The Continue server. In Practical Aspects of Declarative Langauges, January 2003.Google Scholar
- 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 and Shriram Krishnamurthi. Interaction-safe state for the Web. In Scheme and Functional Programming, September 2006.Google Scholar
- Greg Pettyjohn, John Clements, Joe Marshall, Shriram Krishnamurthi, 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 »-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
Automatically RESTful web applications: marking modular serializable continuations
Recommendations
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 ...
The two-state solution: native and serializable continuations accord
OOPSLA '10Continuation-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, ...
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, ...







Comments