skip to main content
research-article

Automatically RESTful web applications: marking modular serializable continuations

Published:31 August 2009Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

automaticallyrestfulwebapplicationsmarkingmodular.mp4

References

  1. John Clements, Matthew Flatt, and Matthias Felleisen. Modeling an algebraic stepper. In European Symposium on Programming, April 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. John Clements, Ayswarya Sundaram, and David Herman. Implementing continuation marks in JavaScript. In Scheme and Functional Programming Workshop, 2008.Google ScholarGoogle Scholar
  3. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Links: Web programming without tiers. In Formal Methods for Components and Objects, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. J. Fischer. Lambda calculus schemata. ACM SIGPLAN Notices, 7(1):104--109, 1972. In the ACM Conference on Proving Assertions about Programs. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cormac Flanagan, Amr Sabry, Bruce F. Duba, and Matthias Felleisen. The essence of compiling with continuations. SIGPLAN Notices, 39(4):502--514, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Matthew Flatt. Composable and compilable macros. In International Conference on Functional Programming, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Paul Graham. Lisp for web-based applications, 2001. http://www.paulgraham.com/lwba.html.Google ScholarGoogle Scholar
  11. Matthew Hertz, Yi Feng, and Emery D. Berger. Garbage collection without paging. In Programming Language Design and Implementation, pages 143--153, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Peter Walton Hopkins. Enabling complex UI in Web applications with send/suspend/dispatch. In Scheme Workshop, 2003.Google ScholarGoogle Scholar
  13. John Hughes. Generalising monads to arrows. Science of Computer Programming, 37(1--3):67--111, May 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Shriram Krishnamurthi. The Continue server. In Practical Aspects of Declarative Langauges, January 2003.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. Jay McCarthy and Shriram Krishnamurthi. Interaction-safe state for the Web. In Scheme and Functional Programming, September 2006.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. Gordon D. Plotkin. Call-by-name, call-by-value, and the »-calculus. Theoretical Computer Science, 1975.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. Peter Thiemann. Wash server pages. Functional and Logic Programming, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Noel Welsh and David Gurnell. Experience report: Scheme in commercial web application development. In International Conference on Functional Programming, September 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Automatically RESTful web applications: marking modular serializable continuations

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 44, Issue 9
      ICFP '09
      September 2009
      343 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1631687
      Issue’s Table of Contents
      • cover image ACM Conferences
        ICFP '09: Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
        August 2009
        364 pages
        ISBN:9781605583327
        DOI:10.1145/1596550

      Copyright © 2009 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 31 August 2009

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!