Concurrent Semantics for Concurrent Constraint Programs

A concurrent semantics is a semantics where concurrency can be realistically represented and naturally described. Therefore we believe that every concurrent language should be provided with a formal concurrent semantics. Here we describe three concurrent semantics for concurrent constraint (cc) programs. They are all based on partial order structures relating the various objects involved in the program computations, so that objects not related by the partial order are concurrent, and those related are instead dependent on each other and thus need to be sequentialized. Furthermore, they all employ a distributed representation of the constraint system, so that several sources of useless sequentializations are avoided. The first one is based on a graph-rewriting description of the operational behaviour of cc programs, and consists of a partial order involving all objects of each (equivalence class of) computation(s). The second one uses a simpler notion of context-dependent rewriting for the operational semantics, and consists of an event structure, which is able to represent both the concurrency and the non-determinism present in a cc program but which relates only the computation steps, and not the objects. The last one, instead, consists of a contextual net (that is, a Petri net extended with context condiditions), which again represents both concurrency and nondeterminism and furthermore relates all objects and steps of the computations. The three semantics are compared and it is argued that the last one is the most suitable concurrent semantics for cc programs, since 1) contextual items are a general and elegant way of formalizing ask operations and avoiding their useless sequentialization, 2) nets allow a direct representation of concurrent information, as well as dependency and mutual exclusion (that is, nondeterminism). The information contained in any one of these semantics, possibly abstracted, can be of great help to a scheduler, in order to obtain an efficient execution of the program, or also to a compile-time optimizer.

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

[2]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[3]  Francesca Rossi,et al.  True Concurrency in Concurrent Constraint Programming , 1991, ISLP.

[4]  Francesca Rossi,et al.  Graph Rewriting for a Partial Ordering Semantics of Concurrent Constraint Programming , 1993, Theor. Comput. Sci..

[5]  Francesca Rossi,et al.  Non-Strict Independent And-Parallelism , 1990, ICLP.

[6]  Prakash Panangaden,et al.  The semantic foundations of concurrent constraint programming , 1991, POPL '91.

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

[8]  Dana S. Scott,et al.  Some Domain Theory and Denotational Semantics in Coq , 2009, TPHOLs.

[9]  Glynn Winskel,et al.  Event Structures , 1986, Advances in Petri Nets.

[10]  Francesca Rossi,et al.  Contextual Occurence Nets and Concurrent Constraint Programming , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[11]  Frank S. de Boer,et al.  A Fully Abstract Model for Concurrent Constraint Programming , 1991, TAPSOFT, Vol.1.

[12]  Hartmut Ehrig,et al.  Introduction to the Algebraic Theory of Graph Grammars (A Survey) , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[13]  Wolfgang Reisig Petri Nets: An Introduction , 1985, EATCS Monographs on Theoretical Computer Science.

[14]  Kim Marriott,et al.  Independence in Constraint Logic Programs , 1993, ILPS.

[15]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[16]  Wolfgang Reisig,et al.  Petri Nets: Applications and Relationships to Other Models of Concurrency , 1986, Lecture Notes in Computer Science.

[17]  S. Maclane,et al.  Categories for the Working Mathematician , 1971 .

[18]  Amir Pnueli,et al.  Proving Partial Order Liveness Properties , 1990, ICALP.

[19]  Hartmut Ehrig,et al.  Note on standard representation of graphs and graph derivations , 1994 .

[20]  Gilberto Filé,et al.  Yet Another Intelligent Backtracking Method , 1988, ICLP/SLP.