A Generalized Semantics for Concurrent Constraint Languages and their Abstract Interpretation

We present a framework for abstract interpretation of concurrent constraint languages. Abstract interpretation is based on the notion of abstraction between constraint systems, which are used to define both concrete and abstract domains. For two constraint systems (D, ⊢) and (D′, ⊢′), and a concrete program P over constraint system (D, ⊢), we define a corresponding abstract program P′ over (D′, ⊢′) such that the execution of P′ in (D′, ⊢′) performs the abstract interpretation of P. Our framework is based on a denotational semantics of concurrent constraint languages, where each agent is seen as a closure operator over the lattice defined by the constraint system. From a practical point of view, we show how such analysis can be implemented by means of a reexecution algorithm, extending thus a previous framework for abstract interpretation of concurrent logic languages. We also show how suspension analysis can be performed within this framework.

[1]  Dana S. Scott,et al.  Concurrent constraint programming languages , 1989 .

[2]  Vijay A. Saraswat The category of constraint systems is Cartesian-closed , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

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

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

[5]  Saumya K. Debray,et al.  Automatic Mode Inference for Prolog Programs , 1986, SLP.

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

[7]  Kim Marriott,et al.  Suspension analyses for concurrent logic programs , 1994, TOPL.

[8]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

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

[10]  Pascal Van Hentenryck,et al.  Reexecution in abstract interpretation of Prolog , 1995 .

[11]  Maurice Bruynooghe,et al.  A Practical Framework for the Abstract Interpretation of Logic Programs , 1991, J. Log. Program..

[12]  Maurizio Gabbrielli,et al.  Compositional analysis for concurrent constraint programming , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[13]  Gilberto Filé,et al.  Computations, abstractions and constraints in logic programs , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[14]  Philippe Codognet,et al.  Abstract Interpretation for Concurrent Logic Languages , 1990, NACLP.

[15]  Kim Marriott,et al.  Efficient Analysis of Concurrent Constraint Logic Programs , 1993, ICALP.

[16]  Marek Kubale,et al.  A generalized implicit enumeration algorithm for graph coloring , 1985, CACM.

[17]  Roberto Giacobazzi,et al.  A Generalized Semantics for Constraint Logic Programs , 1992, Fifth Generation Computer Systems.

[18]  Pascal Van Hentenryck,et al.  A Generic Abstract Interpretation Algorithm and its Complexity Analysis , 1990, ICLP.

[19]  Saumya K. Debray,et al.  Automatic Mode Inference for Logic Programs , 1988, J. Log. Program..

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