Acute: high-level programming language design for distributed computation

This work is exploring the design space of high-level languages for distributed computation, focussing on typing, naming, and version change. We have designed, formally specified and implemented an experimental language, Acute. This extends an OCaml core to support distributed development, deployment, and execution, allowing type-safe interaction between separately-built programs. It is 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 primitives, disentangling the language runtime from communication.

This requires a synthesis of novel and existing features:

The language design deals with the interplay among these features and the core. The semantic definition tracks abstraction boundaries, global names, and hashes throughout compilation and execution, but still admits an efficient implementation strategy.

Papers

Code

Download

People

University of Cambridge Computer Laboratory and INRIA Rocquencourt (Moscova project)

Previous work

Acute draws on earlier work on abstraction-safe marshalling, dynamic rebinding, and module versioning, described in the ICFP 2003 and POPL 2001 papers here, and also on work on Nomadic Pict. The implementation is written in Fresh OCaml and Acute also incorporates fresh name generation and swap.

Acknowledgements

This work has been funded by a Royal Society University Research Fellowship (Sewell), a St Catharine's College Heller Research Fellowship (Wansbrough), an INRIA grant "post-doc a l'etranger" (Zappa Nardelli), EPSRC grants GRN24872 and GRT11715, EC FET-GC project IST-2001-33234 PEPITO, and APPSEM 2.

Peter.Sewell@cl.cam.ac.uk

[Validate this page.]