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 resources. 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.]