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


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.


  • Conference version: DVI, PostScript, BibTeX Entry.
  • Journal version: DVI, PostScript, BibTeX Entry.
  • giaco@di.unipi.it