nomadic logo
nomadic skyline

[ Download | Tutorial | Libraries ]

Nomadic Pict is a strongly-typed, distributed programming language based on the Nomadic Pi-calculus of Wojciechowski, Sewell and Pierce. Programs expressed in our language can be structured in terms of mobile agents, i.e. units of executing computation that can migrate between machines. The key feature is that mobile agents can communicate while migrating.

This paper gives you a taste of programming in Nomadic Pict. For an exercise, try to run these programs; see also more examples.

A number of idealised programming languages have been proposed, working towards languages for wide-area distributed systems. Many build on 'mobile process calculi' (various links are here). Nomadic Pict shares a number of design features with these languages, such as support for 'concurrency', 'mobility', and 'types'. However, there are also important differences.

Nomadic Pict has been developed as a tool for studying and verifying the distributed infrastructure required by mobile agents to communicate. The core language, i.e. the Nomadic Pi-calculus, has been used as a theoretical foundation for proving properties of the infrastructure algorithms. Papers are available from the project web page here.

We have also used the language as a vehicle to identify and experiment with various programming abstractions for distributed systems. For instance, Nomadic Pict has been used to encode:

Nomadic Pict is built on Pierce and Turner's Pict, a concurrent but not distributed, statically-typed language based on the asynchronous Pi-calculus. The language features are described in Pict: A Programming Language Based on the Pi-Calculus.

Distribution and Documentation

The current release includes the Nomadic Pict compiler, runtime system, language tutorial, numerous libraries, and example programs.

This is an alpha release. There are still some things not completely finished and bugs are likely to occasionally appear, but the core functionality is working pretty well for us now. We would appreciate input from the distributed system community as we move towards a more public distribution. Bug reports should be sent to Pawel [dot] T [dot] Wojciechowski [at]

To install the source distribution, you will need a Unix/Linux workstation with the Gnu make utility, the Gnu C compiler, and (for some of the demos) X11. In addition to the tools listed above, you will need the OCaml compiler, available from


05 / 2020 - Upgrade to OCaml ver. 4.09.0
04 / 2002 - Bug-fix release after getting first feedback (EPFL)
12 / 2000 - Test release (University of Cambridge)

opera logo cambridge crest

Pawel [dot] T [dot] Wojciechowski [at]
Last modified: Fri, 29 May 2020, 13:42:47 CEST