ACM Home Page
Please provide us with feedback. Feedback
Acute: high-level programming language design for distributed computation
Full text PdfPdf (195 KB)
Source International Conference on Functional Programming archive
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming table of contents
Tallinn, Estonia
SESSION: Session 2 table of contents
Pages: 15 - 26  
Year of Publication: 2005
ISBN:1-59593-064-7
Also published in ...
Authors
Peter Sewell  University of Cambridge
James J. Leifer  INRIA Rocquencourt
Keith Wansbrough  University of Cambridge
Francesco Zappa Nardelli  INRIA Rocquencourt
Mair Allen-Williams  University of Cambridge
Pierre Habouzit  INRIA Rocquencourt
Viktor Vafeiadis  University of Cambridge
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 63,   Citation Count: 12
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1086365.1086370
What is a DOI?

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

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
3
 
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
 
7
 
8
 
9
Packacking and deploying .Net framework applications (.Net framework tutorials, msdn), 2003.
 
10
 
11
Jun Furuse and Pierre Weis. Entrées/sorties de valeurs en Caml. In J. Francophones des Langages Applicatifs, 2000.
12
13
 
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
 
17
JoCaml. http://pauillac.inria.fr/jocaml/.
18
19
 
20
 
21
 
22
23
24
 
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
 
29
 
30
31
 
32
Vesta. http://www.vestasys.org/.

CITED BY  12
 
 

Collaborative Colleagues:
Peter Sewell: colleagues
James J. Leifer: colleagues
Keith Wansbrough: colleagues
Francesco Zappa Nardelli: colleagues
Mair Allen-Williams: colleagues
Pierre Habouzit: colleagues
Viktor Vafeiadis: colleagues