Oz is an experimental higher-order concurrent constraint programming
system under development at DFKI. It combines ideas from logic and
concurrent programming in a simple yet expressive language. From logic
programming Oz inherits logic variables and logic data structures,
which provide for a programming style where partial information about
the values of variables is imposed concurrently and incrementally. A
novel feature of Oz is that it accommodates higher-order programming
without sacrificing that denotation and equality of variables are
captured by first-order logic. Another new feature of Oz is constraint
communication, a new form of asynchronous communication exploiting
logic variables. Constraint communication avoids the problems of
stream communication, the conventional communication mechanism
employed in concurrent logic programming. Constraint communication
can be seen as providing a minimal form of state fully compatible with
logic data structures.
Based on constraint communication and higher-order programming, Oz
readily supports a variety of object-oriented programming styles
including multiple inheritance.