skip to main content
10.1145/1086365.1086370acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

Acute: high-level programming language design for distributed computation

Published: 12 September 2005 Publication History

Abstract

Existing languages provide good support for typeful programming of standalone programs. In a distributed system, however, there may be interaction between multiple instances of many distinct programs, sharing some (but not necessarily all) of their module structure, and with some instances rebuilt with new versions of certain modules as time goes on. In this paper we discuss programminglanguage support for such systems, focussing on their typing and naming issues.We describe an experimental language, Acute, which extends an ML core to support distributed development, deployment, and execution, allowing type-safe interaction between separately-built programs. The main features are: (1) type-safe marshalling of arbitrary values; (2) type names that are generated (freshly and by hashing) to ensure that type equality tests suffice to protect the invariants of abstract types, across the entire distributed system; (3) expression-level names generated to ensure that name equality tests suffice for type-safety of associated values, e.g. values carried on named channels; (4) controlled dynamic rebinding of marshalled values to local resources; and (5) thunkification of threads and mutexes to support computation mobility.These features are a large part of what is needed for typeful distributed programming. They are a relatively lightweight extension of ML, should be efficiently implementable, and are expressive enough to enable a wide variety of distributed infrastructure layers to be written as simple library code above the byte-string network and persistent store APIs. This disentangles the language runtime from communication intricacies. This paper highlights the main design choices in Acute. It is supported by a full language definition (of typing, compilation, and operational semantics), by a prototype implementation, and by example distribution libraries.

References

[1]
J. Armstrong, R. Virding, C. Wikstrom, and M. Williams. Concurrent Programming in Erlang. Prentice Hall, 1996. 2nd ed.]]
[2]
N. Benton, L. Cardelli, and C. Fournet. Modern concurrency abstractions for C#. In Proc. ECOOP, LNCS 2374, 2002.]]
[3]
G. Bierman, M. Hicks, P. Sewell, G. Stoyle, and K. Wansbrough. Dynamic rebinding for marshalling and update,with destruct-time λ. In Proc. ICFP, 2003.]]
[4]
Alex Buckley, Michelle Murray, Susan Eisenbach, and Sophia Drossopoulou. Flexible bytecode for linking in .NET. In Proc. BYTECODE 2005, April 2005.]]
[5]
D. Le Botlan, A. Rossberg, C. Schulte, G. Smolka, and G. Tack, 2005. www.ps.uni-sb.de/alice/.]]
[6]
L. Cardelli. A language with distributed scope. In Proc. 22nd POPL, pages 286--297, 1995.]]
[7]
L. Cardelli and A. D. Gordon. Mobile ambients. In Proc. FoSSaCS, LNCS 1378, 1998.]]
[8]
S. Drossopoulou, S. Eisenbach, and D. Wragg. A fragment calculus towards a model of separate compilation, linking and binary compatibility. In Proc. LICS, 1999.]]
[9]
Packacking and deploying .Net framework applications (.Net framework tutorials, msdn), 2003.]]
[10]
C. Fournet, G. Gonthier, J.-J. Lévy, L. Maranget, and D. Rémy. A calculus of mobile agents. In Proc. 7th CONCUR, LNCS 1119, 1996.]]
[11]
Jun Furuse and Pierre Weis. Entrées/sorties de valeurs en Caml. In J. Francophones des Langages Applicatifs, 2000.]]
[12]
D. Grossman, G. Morrisett, and S. Zdancewic. Syntactic type abstraction. ACM TOPLAS, 22(6):1037--1080, 2000.]]
[13]
R. Harper and M. Lillibridge. A type-theoretic approach to higher-order modules with sharing. In Proc. 21st POPL, 1994.]]
[14]
R. Harper and B. C. Pierce. Design issues in advanced module systems, 2005. Chapter in Advanced Topics in Types and Programming Languages, B. C. Pierce, editor.]]
[15]
M. Hennessy, J. Rathke, and N. Yoshida. Safedpi: A language for controlling mobile code. In Proc. FOSSACS, LNCS 2987, 2004.]]
[16]
R. Harper and C. Stone. A type-theoretic interpretation of standard ML. In Proof, Language and Interaction: Essays in Honour of Robin Milner. 2000.]]
[17]
JoCaml. http://pauillac.inria.fr/jocaml/.]]
[18]
X. Leroy. Manifest types, modules, and separate compilation. In Proc. 21st POPL, 1994.]]
[19]
J. J. Leifer, G. Peskine, P. Sewell, and K. Wansbrough. Global abstraction-safe marshalling with hash types. In Proc. 8th ICFP, 2003.]]
[20]
T. Murphy, K. Crary, R. Harper, and F. Pfenning. A symmetric modal lambda calculus for distributed computing. In Proc. LICS, 2004.]]
[21]
B. C. Pierce and D. N. Turner. Pict: A programming language based on the pi-calculus. In Proof, Language and Interaction: Essays in Honour of Robin Milner. 2000.]]
[22]
J. H. Reppy. Concurrent Programming in ML. Cambridge Univ Press, 1999.]]
[23]
A. Rossberg. Generativity and dynamic opacity for abstract types. In Proc. 5th PPDP, August 2003.]]
[24]
P. Sewell. Modules, abstract types, and distributed versioning. In Proc. 28th POPL, 2001.]]
[25]
M. R. Shinwell. The Fresh Approach: functional programming with names and binders. Technical Report UCAM-CLTR-618, University of Cambridge, Computer Laboratory, 2005.]]
[26]
P. Sewell, J. J. Leifer, K. Wansbrough, M. Allen-Williams, Francesco Z. Nardelli, P. Habouzit, and V. Vafeiadis. Acute: High-level programming language design for distributed computation. design rationale and language definition. Technical Report 605, University of Cambridge Computer Laboratory, October 2004. Also published as INRIA RR-5329. 193pp.]]
[27]
P. Sewell, J. J. Leifer, K. Wansbrough, M. Allen-Williams, F. Zappa Nardelli, P. Habouzit, and V. Vafeiadis. Source release of the Acute system, January 2005. Available from http://www.cl.cam.ac.uk/users/pes20/acute/.]]
[28]
M. R. Shinwell, A. M. Pitts, and M. J. Gabbay. FreshML: Programming with binders made simple. In Proc. 8th ICFP, pages 263--274, 2003.]]
[29]
P. Sewell, P. T. Wojciechowski, and B. C. Pierce. Locationindependent communication for mobile agents: a two-level architecture. In Internet Programming Languages, LNCS 1686, pages 1--31, 1999.]]
[30]
B. Thomsen, L. Leth, and T.-M. Kuo. A Facile tutorial. In CONCUR'96, LNCS 1119, 1996.]]
[31]
A. Unyapoth and P. Sewell. Nomadic Pict: Correct communication infrastructure for mobile computation. In Proc. POPL, pages 116--127, January 2001.]]
[32]
Vesta. http://www.vestasys.org/.]]

Cited By

View all
  • (2022)Whois? Deep Author Name Disambiguation Using Bibliographic DataLinking Theory and Practice of Digital Libraries10.1007/978-3-031-16802-4_16(201-215)Online publication date: 20-Sep-2022
  • (2022)Analysing User Involvement in Open Government Data InitiativesLinking Theory and Practice of Digital Libraries10.1007/978-3-031-16802-4_14(175-186)Online publication date: 20-Sep-2022
  • (2021)An order-aware dataflow model for parallel Unix pipelinesProceedings of the ACM on Programming Languages10.1145/34735705:ICFP(1-28)Online publication date: 19-Aug-2021
  • Show More Cited By

Index Terms

  1. Acute: high-level programming language design for distributed computation

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICFP '05: Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
    September 2005
    342 pages
    ISBN:1595930647
    DOI:10.1145/1086365
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 40, Issue 9
      Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
      September 2005
      330 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1090189
      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 September 2005

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. ML
    2. abstract types
    3. distributed programming
    4. marshalling
    5. modules
    6. programming languages
    7. rebinding
    8. serialisation
    9. type theory
    10. version control

    Qualifiers

    • Article

    Conference

    ICFP05
    Sponsor:

    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)6
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 05 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Whois? Deep Author Name Disambiguation Using Bibliographic DataLinking Theory and Practice of Digital Libraries10.1007/978-3-031-16802-4_16(201-215)Online publication date: 20-Sep-2022
    • (2022)Analysing User Involvement in Open Government Data InitiativesLinking Theory and Practice of Digital Libraries10.1007/978-3-031-16802-4_14(175-186)Online publication date: 20-Sep-2022
    • (2021)An order-aware dataflow model for parallel Unix pipelinesProceedings of the ACM on Programming Languages10.1145/34735705:ICFP(1-28)Online publication date: 19-Aug-2021
    • (2021)PaShProceedings of the Sixteenth European Conference on Computer Systems10.1145/3447786.3456228(49-66)Online publication date: 21-Apr-2021
    • (2020)A Survey of Multitier ProgrammingACM Computing Surveys10.1145/339749553:4(1-35)Online publication date: 26-Sep-2020
    • (2019)Robust algorithms for sparse interpolation of multivariate polynomialsACM Communications in Computer Algebra10.1145/3338637.333864852:4(145-147)Online publication date: 30-May-2019
    • (2019)Computing the integer points of a polyhedronACM Communications in Computer Algebra10.1145/3338637.333864252:4(126-129)Online publication date: 30-May-2019
    • (2019)Gröbner bases and multi-dimensional persistent bifurcation diagram classificationsACM Communications in Computer Algebra10.1145/3338637.333864052:4(120-122)Online publication date: 30-May-2019
    • (2019)Ignis: scaling distribution-oblivious systems with light-touch distributionProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3314221.3314586(1010-1026)Online publication date: 8-Jun-2019
    • (2018)A programming model and foundation for lineage-based distributed computationJournal of Functional Programming10.1017/S095679681800003528Online publication date: 12-Mar-2018
    • 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