Uniform Abstraction, Atomicity and Contractions in the Comparative Semantics of Concurrent Prolog

This paper shows the equivalence of two semantics for a version of Concurrent Prolog with non-flat guards: an operational semantics based on a transition system and a denotational semantics which is a metric semantics (the domains are metric spaces). We do this in the following manner: First an uniform language £ is considered, that is a language where the atomic actions have arbitrary interpretations. For this language we prove that a denotational semantics is correct with respect to the operational semantics. This result relies on Banach's fixed point theorem. Techniques stemming from imperative languages are used. Then we show how to translate a Concurrent Prolog program to a program in £ by selecting certain basic sets for £ and then instantiating the interpretation function for the atomic actions. In this way we induce the two semantics for Concurrent Prolog and the equivalence between the two semantics. Remark: an extended abstract of this report will appear in Proc. Fifth Generation Computer Systems 1988 (FGCS '88), December 1988, Tokyo, Japan.

[1]  Jan J. M. M. Rutten,et al.  Contractions in Comparing Concurrent Semantics , 1988, ICALP.

[2]  Frank S. de Boer,et al.  Control Flow versus Logic: A Denotational and a Declarative Model for Guarded Horn Clauses , 1989, MFCS.

[3]  Pierre America,et al.  Solving Reflexive Domain Equations in a Category of Complete Metric Spaces , 1987, J. Comput. Syst. Sci..

[4]  John-Jules Ch. Meyer,et al.  Metric semantics for concurrency , 1988, BIT.

[5]  Grzegorz Rozenberg,et al.  Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency , 1988, Lecture Notes in Computer Science.

[6]  Saumya K. Debray,et al.  Denotational and Operational Semantics for Prolog , 1988, J. Log. Program..

[7]  Joost N. Kok A Compositional Semantics for Concurrent Prolog , 1988, STACS.

[8]  Ehud Shapiro,et al.  A subset of Concurrent Prolog and its interpreter , 1988 .

[9]  Graem A. Ringwood Parlog86 and the dining logicians , 1988, CACM.

[10]  Daniel M. Berry,et al.  Operational and Denotational Semantics of Prolog , 1987, J. Log. Program..

[11]  Vijay A. Saraswat,et al.  The concurrent logic programming language CP: Definition and operational semantics , 1987, POPL '87.

[12]  G. Levi,et al.  An Approach to the Declarative Semantics of Synchronization in Logic Languages , 1987, ICLP.

[13]  Michael Codish,et al.  Fully abstract denotational semantics for concurrent Prolog , 1987 .

[14]  Krzysztof R. Apt,et al.  Countable nondeterminism and random assignment , 1986, JACM.

[15]  Lennart Beckman,et al.  Towards a Formal Semantics for Concurrent Logic Programming Languages , 1986, ICLP.

[16]  Kazunori Ueda,et al.  Guarded Horn Clauses , 1986, LP.

[17]  Giorgio Levi,et al.  The Declarative Semantics of Logical Read-Only Variables , 1985, SLP.

[18]  Neil D. Jones,et al.  Stepwise Development of Operational and Denotational Semantics for Prolog , 1984, International Conference on Spoken Language Processing.

[19]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[20]  J. W. de Bakker,et al.  Processes and the Denotational Semantics of Concurrency , 1982, Inf. Control..

[21]  Matthew Hennessy,et al.  Full Abstraction for a Simple Parallel Programming Language , 1979, MFCS.