Joint work with Peter Sewell and Asis Unyapoth of the University of Cambridge and Benjamin Pierce of the University of Pennsylvania
Mobile agents -- units of executing computation that can migrate between machines -- are likely to become an important enabling technology for future distributed systems. We study the distributed infrastructures required for location-independent communication between migrating agents. These infrastructures are problematic: the choice or design of an infrastructure must be somewhat application-specific --- any given algorithm will only have satisfactory performance for some range of migration and communication behaviour; the algorithms must be matched to the expected properties (and robustness demands) of applications and the failure characteristic of the communication medium. To study this problem we introduced Nomadic Pict -- a distributed programming language for the Internet. It is designed to allow infrastructure algorithms to be expressed clearly, as translations from a high-level language to a lower level. The levels are based on rigorously-defined process calculi, which provide sharp levels of abstraction. I will describe the Nomadic Pict core language and briefly discuss an example application and the choice of an appropriate communication infrastructure based on a specific migration and communication pattern. The language and examples have been implemented; I will conclude with a brief description of the compiler and runtime system.