Semantic foundations of concurrent constraint programming

Vijay Saraswat, Martin Rinard, Prakash Panangaden · 1995

Concurrent constraint programming [Sar89,SR90] is a simple and powerful model of concurrent computation based on the notions of store-as constraint and process as information transducer. The store-as-valuation conception of von Neumann computing is replaced by the notion that the store is a constraint (a finite representation of a possibly infinite set of valuations) which provides partial information about the possible values that variables can take. Instead of "reading" and "writing" the values of variables, processes may now ask (check if a constraint is entailed by the store) and tell (augment the store with a new constraint). This is a very general paradigm which subsumes (among others) nondeterminate data-flow and the (concurrent)(constraint) logic programming languages. This paper develops the basic ideas involved in giving a coherent semantic account of these languages. Our first contribution is to give a simple and general formulation of the notion that a constraint system is.

Read the paper · More papers on PaperTik