Smolka Oz is a high-level language designed to support both concurrent and constraint programming.
Concurrency makes it possible to express interacting computations.
Constraint programming is an evolving methodology for solving combinatorial problems with constraint propagation and heuristic search. One application scenario for Oz are evolving systems of interacting agents, where the agents may employ complex knowledge structures and constraint-based inference engines. Oz employs the concepts of logic variable and constraint store from logic programming but breaks with the dogma of declarative semantics. This combination yields spectacular expressivity for connecting and synchronizing concurrent computations. This goes far beyond the expressivity of Prolog-like languages, which are committed to one specific search engine and fail to separate programming and search facilities.