The Pict Programming Language

We are pleased to announce a new public release of Pict, a concurrent programming language based on the pi-calculus.

Pict is a language in the ML tradition, formed by adding a layer of convenient syntactic sugar and a static type system to a tiny core. The current release includes a Pict-to-C compiler, reference manual, language tutorial, numerous libraries, and example programs.

The core language - an asynchronous variant of Milner, Parrow, and Walker's pi-calculus - has been used as a theoretical foundation for a broad class of concurrent computations. The goal in Pict is to identify high-level idioms that arise naturally when these primitives are used to build working programs - idioms such as basic data structures, protocols for returning results, higher-order programming, selective communication, and concurrent objects. The type system integrates a number of features found in recent work on theoretical foundations for typed object-oriented languages: higher-order polymorphism, simple recursive types, subtyping, and a powerful partial type inference algorithm.

Highlights of the new release include...

The current release of the compiler is available in both source and binary form from:

For the binary distribution, go to the subdirectory labeled pict-NNN with the largest version number NNN and retrieve the file pict-NNN.ARCH.tar.gz for an appropriate value of ARCH. To use the binary distribution, you will need a unix workstation with the Gnu make utility, the Gnu C compiler, and (for some of the demos) X11.

For the source distribution, retrieve the file pict-NNN.tar.gz, with the largest version number NNN. In addition to the tools listed above, you will need the Objective CAML compiler, available from

Benjamin C. Pierce
David N. Turner