-calculus, a computational calculus for
higher-order concurrent programming. The calculus can elegantly
express higher-order functions (both eager and lazy) and concurrent
objects with encapsulated state and multiple inheritance. The
primitives of the -calculus are logic
variables, names,
procedural abstraction, and cells. Cells provide a notion of state
that is fully compatible with concurrency and constraints. Although it
does not have a dedicated communication primitive, the -calculus
can elegantly express one-to-many and many-to-one communication.
There is an interesting relationship between the
-calculus and
the -calculus: The
-calculus is subsumed by a calculus
obtained by extending the asynchronous and polyadic
-calculus with
logic variables.
-calculus can be extended with
primitives providing for
constraint-based problem solving in the style of logic programming.
A such extended -calculus has the
remarkable property that it
combines first-order constraints with higher-order programming.