We present a calculus providing an abstract operational semantics for higher-order concurrent constraint programming. The calculus is parameterized with a first-order constraint system and provides first-class abstraction, guarded disjunction, committed-choice, deep guards, dynamic creation of unique names, and constraint communication. The calculus comes with a declarative sublanguage for which computation amounts to equivalence transformation of formulas. The declarative sublanguage can express negation. Abstractions are referred to by names, which are first-class values. This way we obtain a smooth and straightforward combination of first-order constraints with higher-order programming. Constraint communication is asynchronous and exploits the presence of logic variables. It provides a notion of state that is fully compatible with constraints and concurrency. The calculus serves as the semantic basis of Oz, a programming language and system under development at DFKI.
Download PDF Show BibTeX
Login to edit