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 2005 Publication 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.]]
[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.]]
[3]
A. Gordon. Bisimilarity as a theory of functional programming. Theoretical Computer Science, 228(1-2):5--47, Oct. 1999.]]
[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.]]
[5]
F. Henglein. Efficient type inference for higher-order binding-time analysis. In Hughes {6}, pages 448--472.]]
[6]
J. Hughes, editor. Functional Programming Languages and Computer Architecture, number 523 in Lecture Notes in Computer Science, Cambridge, MA, 1991. Springer-Verlag.]]
[7]
N. Jones, C. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.]]
[8]
J. Krinke. Context-sensitive slicing of concurrent programs. In Proceedings 9th European Software Engineering Conference, pages 178--187. ACM Press, 2003.]]
[9]
X. Leroy. The Objective Caml system release 3.02, Documentation and user's manual. INRIA, France, July 2001. http://pauillac.inria.fr/caml.]]
[10]
R. Milner. Communication and Concurrency. Prentice Hall, Englewood Cliffs, NJ, 1989.]]
[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.]]
[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.]]
[13]
S. L. Peyton Jones. Parallel implementations of functional programming languages. The Computer Journal, 32(2):175--186, 1989.]]
[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.]]
[15]
W. R. Stevens. UNIX Network Programming. Prentice Hall Software Series, 1990.]]
[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.]]
[17]
F. Tip. A survey of program slicing techniques. J. Programming Languages, 3(3):121--189, 1995.]]
[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.]]
[19]
S. Zdancewic, L. Zheng, N. Nystrom, and A. C. Myers. Secure program partitioning. ACM Transactions on Computer Systems, 20(3):283--328, 2002.]]
[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.]]

Cited By

View all
  • (2024)Choral: Object-oriented Choreographic ProgrammingACM Transactions on Programming Languages and Systems10.1145/363239846:1(1-59)Online publication date: 16-Jan-2024
  • (2024)Bridging Between Active Objects: Multitier Programming for Distributed, Concurrent SystemsActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_4(92-122)Online publication date: 29-Jan-2024
  • (2023)External Dependencies in Software DevelopmentQuality of Information and Communications Technology10.1007/978-3-031-43703-8_16(215-232)Online publication date: 13-Sep-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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: 12 January 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. application partioning
  2. concurrency
  3. type systems

Qualifiers

  • Article

Conference

POPL05

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Choral: Object-oriented Choreographic ProgrammingACM Transactions on Programming Languages and Systems10.1145/363239846:1(1-59)Online publication date: 16-Jan-2024
  • (2024)Bridging Between Active Objects: Multitier Programming for Distributed, Concurrent SystemsActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_4(92-122)Online publication date: 29-Jan-2024
  • (2023)External Dependencies in Software DevelopmentQuality of Information and Communications Technology10.1007/978-3-031-43703-8_16(215-232)Online publication date: 13-Sep-2023
  • (2022)HAMRAZ: Resilient Partitioning and Replication2022 IEEE Symposium on Security and Privacy (SP)10.1109/SP46214.2022.9833661(2267-2284)Online publication date: May-2022
  • (2021)A Typed Slicing Compilation of the Polymorphic RPC calculusProceedings of the 23rd International Symposium on Principles and Practice of Declarative Programming10.1145/3479394.3479406(1-15)Online publication date: 6-Sep-2021
  • (2020)A Survey of Multitier ProgrammingACM Computing Surveys10.1145/339749553:4(1-35)Online publication date: 26-Sep-2020
  • (2020)A polymorphic RPC calculusScience of Computer Programming10.1016/j.scico.2020.102499197(102499)Online publication date: Oct-2020
  • (2019)Developing Distributed Systems with Multitier ProgrammingProceedings of the 13th ACM International Conference on Distributed and Event-based Systems10.1145/3328905.3332465(203-204)Online publication date: 24-Jun-2019
  • (2019)A Decomposition-Based Development Method for Industrial Control SystemsIEEE Access10.1109/ACCESS.2019.2927263(1-1)Online publication date: 2019
  • (2019)A theory of RPC calculi for client–server modelJournal of Functional Programming10.1017/S095679681900002929Online publication date: 22-Mar-2019
  • 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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media