skip to main content
10.1145/1040305.1040324acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

From sequential programs to multi-tier applications by program transformation

Published:12 January 2005Publication History

ABSTRACT

Modern applications are designed in multiple tiers to separate concerns. Since each tier may run at a separate location, middleware is required to mediate access between tiers. However, introducing this middleware is tiresome and error-prone.We propose a multi-tier calculus and a splitting transformation to address this problem. The multi-tier calculus serves as a sequential core programming language for constructing a multi-tier application. The application can be developed in the sequential setting. Splitting extracts one process per tier from the sequential program such that their concurrent execution behaves like the original program.The splitting transformation starts from an assignment of primitive operations to tiers. A program analysis determines communication requirements and inserts remote procedure calls. The next transformation step performs resource pooling: it optimizes the communication behavior by transforming sequences of remote procedure calls to a stream-based protocol. The final transformation step splits the resulting program into separate communicating processes.The multi-tier calculus is also applicable to the construction of interactive Web applications. It facilitates their development by providing a uniform programming framework for client-side and server-side programming.

References

  1. C. Flanagan, A. Sabry, B. F. Duba, and M. Felleisen. The essence of compiling with continuations. In Proceedings of the 1993 Conference on Programming Language Design and Implementation, pages 237--247, Albuquerque, New Mexico, June 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Gay and M. Hole. Types and subtypes for client-server interactions. In D. Swierstra, editor, Proceedings of the 1999 European Symposium on Programming, number 1576 in Lecture Notes in Computer Science, pages 74--90, Amsterdam, The Netherlands, Apr. 1999. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Gordon. Bisimilarity as a theory of functional programming. Theoretical Computer Science, 228(1-2):5--47, Oct. 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Greiner and G. E. Blelloch. A provably time-efficient parallel implementation of full speculation. ACM Transactions on Programming Languages and Systems, 21(2):240--285, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. F. Henglein. Efficient type inference for higher-order binding-time analysis. In Hughes {6}, pages 448--472.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Hughes, editor. Functional Programming Languages and Computer Architecture, number 523 in Lecture Notes in Computer Science, Cambridge, MA, 1991. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. N. Jones, C. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Krinke. Context-sensitive slicing of concurrent programs. In Proceedings 9th European Software Engineering Conference, pages 178--187. ACM Press, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. X. Leroy. The Objective Caml system release 3.02, Documentation and user's manual. INRIA, France, July 2001. http://pauillac.inria.fr/caml.]]Google ScholarGoogle Scholar
  10. R. Milner. Communication and Concurrency. Prentice Hall, Englewood Cliffs, NJ, 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. G. Nanda and S. Ramesh. Slicing concurrent programs. In Proceedings of the International Symposium on Software Testing and Analysis, pages 180--190. ACM Press, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Park. Concurrency and automata on infinite sequences. In Proceedings of the 5th GI-Conference on Theoretical Computer Science, number 104 in Lecture Notes in Computer Science, pages 167--1183. Springer-Verlag, 1981.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. L. Peyton Jones. Parallel implementations of functional programming languages. The Computer Journal, 32(2):175--186, 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. L. Peyton Jones and J. Launchbury. Unboxed values as first class citizens in a non-strict functional language. In Hughes {6}, pages 636--666.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. R. Stevens. UNIX Network Programming. Prentice Hall Software Series, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Y. M. Tang and P. Jouvelot. Effect systems with subtyping. In W. Scherlis, editor, Proc. ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation PEPM '95, pages 45--53, La Jolla, CA, USA, June 1995. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. F. Tip. A survey of program slicing techniques. J. Programming Languages, 3(3):121--189, 1995.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Walker, C. Crary, and G. Morrisett. Typed memory management via static capabilities. ACM Transactions on Programming Languages and Systems, 22(4):701--771, July 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Zdancewic, L. Zheng, N. Nystrom, and A. C. Myers. Secure program partitioning. ACM Transactions on Computer Systems, 20(3):283--328, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. Zheng, S. Chong, A. C. Myers, and S. Zdancewic. Using replication and partitioning to build secure distributed systems. In Proceedings of the 2003 IEEE Symposium on Security and Privacy, page 236. IEEE Computer Society, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. From sequential programs to multi-tier applications by program transformation

        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
        • Published in

          cover image ACM Conferences
          POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
          January 2005
          402 pages
          ISBN:158113830X
          DOI:10.1145/1040305
          • General Chair:
          • Jens Palsberg,
          • Program Chair:
          • Martín Abadi
          • cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 40, Issue 1
            Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
            January 2005
            391 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/1047659
            Issue’s Table of Contents

          Copyright © 2005 ACM

          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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 12 January 2005

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate824of4,130submissions,20%

          Upcoming Conference

          POPL '25

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader