A Logic Coordination Language Based on the Chemical Metaphor

We describe Gammalog, a logic language whose semantics is based on the chemical metaphor typical of concurrent multiset rewriting. In fact, the language combines the ability of describing coordination by multiset transformation rules, as in GAMMA, with the execution model of logic programming in a strongly typed framework, as in Godel. We present the design choices, the language syntax, and its formal semantics. Gammalog has a standard model theoretic semantics expressed in terms of multiset rewritings; soundness and completeness results are proved with respect to extended SLD resolution. We present a prototype implementation of a compiler based on the original Godel implementation, which has been extended to support first class multisets. As an example of the expressive power of the language we provide a specification of a simple operating system.

[1]  Maritta Heisel Specification of the Unix File System: A Comparative Case Study , 1995, AMAST.

[2]  Ian T. Foster,et al.  Systems programming in parallel logic languages , 1990 .

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

[4]  Daniel Le Métayer,et al.  Programming by multiset transformation , 1993, CACM.

[5]  Agostino Dovier,et al.  {log}: A Logic Programming Language with Finite Sets , 1991, ICLP.

[6]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[7]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[8]  Paolo Ciancarini,et al.  Parallel Symbolic Computing with the Shared Dataspace Coordination Model , 1994, ICLP Workshop: Process-Based Parallel Logic Programming.

[9]  Gruia-Catalin Roman,et al.  Mixed Programming Mataphors in a Shared Dataspace Model of Concurrency , 1990, IEEE Trans. Software Eng..

[10]  Kenneth Kunen,et al.  Negation in Logic Programming , 1987, J. Log. Program..

[11]  Agostino Dovier,et al.  A Language for Programming in Logic with Finite Sets , 1996, J. Log. Program..

[12]  Antonio Brogi,et al.  The concurrent language, Shared Prolog , 1991, TOPL.

[13]  Paolo Ciancarini,et al.  Gammalög: a coordination language based on gamma and Gödel , 1996 .

[14]  Roberto Gorrieri,et al.  An alternative semantics for the parallel operator of the calculus of gamma programs , 1996 .

[15]  Stephen Taylor,et al.  Parallel logic programming techniques , 1989 .

[16]  Chris Hankin,et al.  A Parallel Programming Style and Its Algebra of Programs , 1993, PARLE.

[17]  Keith L. Clark,et al.  Negation as Failure , 1987, Logic and Data Bases.

[18]  Chris Hankin,et al.  A Calculus of Gamma Programs , 1992, LCPC.

[19]  Anthony J. Kusalik,et al.  Secondary storage in a concurrent logic programming environment , 1990, J. Syst. Softw..

[20]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[21]  Margaret M. West,et al.  Types and Sets in Gödel and Z , 1995, ZUM.

[22]  Paolo Ciancarini,et al.  Parallel Programming with Logic Languages: A Survey , 1992, Comput. Lang..