A calculus for higher-order concurrent constraint programming with deep guards

We present a calculus providing an abstract operational semantics forhigher-order concurrent constraint programming. The calculus isparameterized with a first-order constraint system and provides first-class abstraction, guarded disjunction, committed-choice, deepguards, 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 straight forward 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.

[1]  Richard A. O'Keefe,et al.  On the Treatment of Cuts in Prolog Source-Level Tools , 1985, SLP.

[2]  Gert Smolka,et al.  Object-Oriented Concurrent Constraint Programming in Oz , 1993, KI.

[3]  Gert Smolka,et al.  A Feature-Based Constraint System for Logic Programming with Entailment , 1992, FGCS.

[4]  Vijay A. Saraswat,et al.  Concurrent constraint programming , 1989, POPL '90.

[5]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[6]  Gert Smolka Residuation and Guarded Rules for Constraint Logic Programming , 1991, WCLP.

[7]  Michael J. Maher A Logic Programming View of CLP , 1993, ICLP.

[8]  Gert Smolka,et al.  Oz - A Programming Language for Multi-Agent Systems , 1993, IJCAI.

[9]  Keith L. Clark,et al.  A relational language for parallel programming , 1981, FPCA '81.

[10]  Seif Haridi,et al.  Programming Paradigms of the Andorra Kernel Language , 1991, ISLP.

[11]  Seif Haridi,et al.  Kernel Andorra Prolog and its Computation Model , 1990, ICLP.

[12]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[13]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[14]  Frank S. de Boer,et al.  A Process Algebra of Concurrent Constraint Programming , 1992, JICSLP.

[15]  Michael Kifer,et al.  HILOG: A Foundation for Higher-Order Logic Programming , 1993, J. Log. Program..

[16]  Dana S. Scott,et al.  Concurrent constraint programming languages , 1989 .

[17]  Alain Colmerauer,et al.  Constraint logic programming: selected research , 1993 .

[18]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[19]  Gert Smolka,et al.  Records for Logic Programming , 1994, J. Log. Program..

[20]  I. Stark,et al.  On the Observable Properties of Higher Order Functions that Dynamically Create Local Names (Preliminary Report) , 1993 .

[21]  Seif Haridi,et al.  Structural operational semantics for AKL , 1992, Future Gener. Comput. Syst..

[22]  Michael J. Maher Complete axiomatizations of the algebras of finite, rational and infinite trees , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[23]  Michael J. Maher Logic Semantics for a Class of Committed-Choice Programs , 1987, ICLP.

[24]  Dale A. Miller,et al.  AN OVERVIEW OF PROLOG , 1988 .

[25]  Vijay A. Saraswat The category of constraint systems is Cartesian-closed , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.