[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1596550.1596594acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Automatically RESTful web applications: marking modular serializable continuations

Published: 31 August 2009 Publication History

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.

Supplementary Material

JPG File (automaticallyrestfulwebapplicationsmarkingmodular.jpg)
MP4 File (automaticallyrestfulwebapplicationsmarkingmodular.mp4)

References

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

Cited By

View all

Index Terms

  1. Automatically RESTful web applications: marking modular serializable continuations

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    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
    • 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
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 31 August 2009

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. continuations
    2. stack inspection
    3. web applications

    Qualifiers

    • Research-article

    Conference

    ICFP '09
    Sponsor:
    ICFP '09: ACM SIGPLAN International Conference on Functional Programming
    August 31 - September 2, 2009
    Edinburgh, Scotland

    Acceptance Rates

    Overall Acceptance Rate 333 of 1,064 submissions, 31%

    Upcoming Conference

    ICFP '25
    ACM SIGPLAN International Conference on Functional Programming
    October 12 - 18, 2025
    Singapore , Singapore

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 11 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)Compiler and runtime support for continuation marksProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3385981(45-58)Online publication date: 11-Jun-2020
    • (2019)A theory of RPC calculi for client–server modelJournal of Functional Programming10.1017/S095679681900002929Online publication date: 22-Mar-2019
    • (2016)A glimpse of HopjsACM SIGPLAN Notices10.1145/3022670.295191651:9(180-192)Online publication date: 4-Sep-2016
    • (2016)A glimpse of HopjsProceedings of the 21st ACM SIGPLAN International Conference on Functional Programming10.1145/2951913.2951916(180-192)Online publication date: 4-Sep-2016
    • (2015)Fault Monitoring with Sequential Matrix FactorizationACM Transactions on Autonomous and Adaptive Systems10.1145/279714110:3(1-25)Online publication date: 8-Oct-2015
    • (2015)Ur/WebACM SIGPLAN Notices10.1145/2775051.267700450:1(153-165)Online publication date: 14-Jan-2015
    • (2015)Autonomous Orchestration of Distributed Discrete Event Simulations in the Presence of Resource UncertaintyACM Transactions on Autonomous and Adaptive Systems10.1145/274634510:3(1-20)Online publication date: 1-Sep-2015
    • (2015)Ur/WebProceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2676726.2677004(153-165)Online publication date: 14-Jan-2015
    • (2013)Mining pure high-order word associations via information geometry for information retrievalACM Transactions on Information Systems10.1145/2493175.249317731:3(1-32)Online publication date: 5-Aug-2013
    • (2013)About learning models with multiple query-dependent featuresACM Transactions on Information Systems10.1145/2493175.249317631:3(1-39)Online publication date: 5-Aug-2013
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media