The University of Southampton
University of Southampton Institutional Repository

Acute: high-level programming language design for distributed computation

Acute: high-level programming language design for distributed computation
Acute: high-level programming language design for distributed computation
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 programming language 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.
1-59593-064-7
15-26
Sewell, Peter
5b0cb169-e8f0-4a57-9a1b-0cfa0e7f51b7
Leifer, James J.
d0f7aff4-5e2c-4a4a-ab86-2aa1d9196579
Wansbrough, Keith
984d8e8f-c19c-4164-9f01-f279cdcfbba5
Zappa Nardelli, Francesco
3bb87053-1bff-4c58-ad0b-59d6113796d6
Allen-Williams, Mair
42b38da6-4f58-48f2-8951-7d2a30664517
Habouzit, Pierre
a5ec736f-6dac-43b7-ba5d-117280ef33de
Vafeiadis, Viktor
22808527-43da-44b4-b598-015d0decca08
Sewell, Peter
5b0cb169-e8f0-4a57-9a1b-0cfa0e7f51b7
Leifer, James J.
d0f7aff4-5e2c-4a4a-ab86-2aa1d9196579
Wansbrough, Keith
984d8e8f-c19c-4164-9f01-f279cdcfbba5
Zappa Nardelli, Francesco
3bb87053-1bff-4c58-ad0b-59d6113796d6
Allen-Williams, Mair
42b38da6-4f58-48f2-8951-7d2a30664517
Habouzit, Pierre
a5ec736f-6dac-43b7-ba5d-117280ef33de
Vafeiadis, Viktor
22808527-43da-44b4-b598-015d0decca08

Sewell, Peter, Leifer, James J., Wansbrough, Keith, Zappa Nardelli, Francesco, Allen-Williams, Mair, Habouzit, Pierre and Vafeiadis, Viktor (2005) Acute: high-level programming language design for distributed computation. the tenth ACM SIGPLAN international conference on Functional programming, Tallinn, Estonia. pp. 15-26 .

Record type: Conference or Workshop Item (Paper)

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 programming language 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.

Text
acute.pdf - Other
Download (194kB)

More information

Published date: 2005
Additional Information: Event Dates: September 2005
Venue - Dates: the tenth ACM SIGPLAN international conference on Functional programming, Tallinn, Estonia, 2005-09-01
Organisations: Electronics & Computer Science

Identifiers

Local EPrints ID: 261487
URI: http://eprints.soton.ac.uk/id/eprint/261487
ISBN: 1-59593-064-7
PURE UUID: 4b86dd75-3892-4055-b7d5-d8f9e450c048

Catalogue record

Date deposited: 18 Oct 2005
Last modified: 14 Mar 2024 06:53

Export record

Contributors

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

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×