Abstracting Synchronization in Concurrent Constraint Programming
Enea Zaffanella,
Giorgio Levi,
Roberto Giacobazzi
Dipartimento di Informatica
Università di Pisa
Corso Italia 40, 56125 Pisa
{zaffanel, levi, giaco}@di.unipi.it
Abstract:
Because of synchronization based on blocking ask,
some of the most important techniques for data flow analysis
of (sequential) constraint logic programs (clp) are no longer
applicable to cc languages.
In particular, the generalized approach to the semantics,
intended to factorize the (standard) semantics so as to make
explicit the domain-dependent features (i.e. operators and
semantic objects which may be influenced by abstraction) becomes
useless for relevant applications.
A possible solution to this problem is based on a more abstract
(non-standard) semantics: the success semantics,
which models non suspended computations only.
With a program transformation (NoSynch) that simply
ignores synchronization, we obtain a clp-like program which
allows us to apply standard techniques for data flow analysis.
For suspension-free programs the success semantics is equivalent
to the standard semantics thus justifying the use of suspension
analysis to generate sound approximations.
A second transformation (Angel) is introduced,
applying a different abstraction of synchronization in possibly
suspending programs and resulting in a framework which is adequate
to suspension analysis.
Applicability and accuracy of these solutions are investigated.
Available:
giaco@di.unipi.it