Confluence in Concurrent Constraint Programming
Concurrent constraint programming (ccp), like most of the
concurrent paradigms, has a mechanism of global choice which makes
computations dependent on the scheduling of processes.
This is one of the main reasons
why the formal semantics of ccp is more complicated
than the one of its deterministic and local-choice sublanguages.
In this paper we study various subsets of ccp
obtained by adding some restriction on the notion of choice,
or by requiring confluency, i.e. independency from the scheduling
strategy.
We show that it is possible to define simple denotational semantics
for these subsets, for various notions of observables.
Finally, as an application of our results we develop a
framework for the compositional analysis of full ccp.
The basic idea is to approximate an arbitrary ccp program by
a program in the restricted language, and then analyze the latter,
by applying the standard techniques of abstract interpretation
to its denotational semantics.