EPSRC grant GR/T11715, 2005-2007
Naming, Distribution, and Versioning: Programming Language Design and Implementation
Peter Sewell, Andrew Pitts, Keith Wansbrough
In this project we will design and implement high-level programming
language support for distributed programming, focussing
especially on naming and on issues arising from version
change and software evolution in large-scale systems.
In recent work we have developed two languages in the ML
tradition: for naming we have Fresh OCaml, facilitating
programming over data structures with names and name binding; for
distributed programming we have Acute, with type-safe and
abstraction-safe marshalling of values between programs, rebinding of
values to local resource names, and version control of those
We propose now to integrate and further develop the two.
There are many challenging and intertwined language-design problems
that must be solved to develop satisfactory languages for distributed
programming: naming of distributed resources and types, marshalling, dynamic linking and versioning,
secure encapsulation, local communication, metaprogramming, and
control of effects.
We will design constructs and semantics for these; implement
them, in lightweight prototypes and as patches to the OCaml
compiler; and experiment with distributed
libraries for communication and security abstractions
and with example applications using them.
[Validate this page.]