Control flow versus logic: A denotational and a declarative model for Guarded Horn Clauses

  • Frank S. de Boer
  • Joost N. Kok
  • Catuscia Palamidessi
  • Jan J. M. M. Rutten
Part of the Lecture Notes in Computer Science book series (LNCS, volume 379)


The paper gives four semantic models for Guarded Horn Clauses (GHC). Two operational models are based on a transition system; the first one gives the set of computed answer substitutions (the so-called success set) and the second one takes deadlock and infinite behaviour into account. They are easily related. The main purpose of the paper is to develop compositional models for GHC that are correct with respect to the operational models. For the success set case we give a compositional declarative semantics which can be seen a an extension of models for Horn Clause Logic. Further, a metric semantics that uses tree-like structures is given, which is proved to be correct with respect to the second operational semantics.


Logic Program Operational Semantic Denotational Semantic Compositional Semantic Current Substitution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Apt87]
    K.R. Apt. Introduction to logic programming. Technical Report CS-R8741, Centre for Mathematics and Computer Science, Amsterdam, 1987. To appear as a chapter in Handbook of Theoretical Computer Science, North-Holland.Google Scholar
  2. [AR88]
    P. America and J.J.M.M. Rutten. Solving reflexive domain equations in a category of complete metric spaces. Proc. of the third workshop on mathematical foundations of programming language semantics, Lecture notes in Computer Science 298, 1988, pp. 254–288.Google Scholar
  3. [dBK88]
    J.W. de Bakker and J.N. Kok. Uniform abstraction, atomicity and contractions in the comparative semantics of concurrent prolog. In Proc. Fifth Generation Computer Systems (FGCS 88), pages 347–355, Tokyo, Japan, 1988. Extended Abstract, full version available as CWI report CS-8834 and to appear in Theoretical Computer Science.Google Scholar
  4. [BZ82]
    J.W. de Bakker and J.I. Zucker. Processes and the denotational semantics of concurrency. Inform. and Control 54, 1982, pp. 70–120.Google Scholar
  5. [CG86]
    K.L. Clark, S. Gregory, PARLOG: Parallel programming in logic, ACM Trans. Program. Lang. Syst. Vol. 8, 1, 1986, 1–49. Res. Report DOC 84/4, Dept. of Computing, Imperial College, London,1984.Google Scholar
  6. [DM87]
    S.K. Debray and P. Mishra. Denotational and operational semantics for prolog. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 245–269, North-Holland, 1987.Google Scholar
  7. [Ede85]
    E. Eder. Properties of substitutions and unifications. Journal Symbolic Computation 1, 1985, pp. 31–46.Google Scholar
  8. [vEK76]
    M.H. van Emden and R.A. Kowalski. The semantics of predicate logic as a programming language. Journal of the ACM 23(4), 1976, 733–742.Google Scholar
  9. [FL88]
    M. Falaschi, G. Levi, Finite Failures and Partial Computations in Concurrent Logic Languages, Proc. of the FGCS'88.Google Scholar
  10. [FLMP88a]
    M. Falaschi, G. Levi, C. Palamidessi, and M. Martelli. Declarative modeling of the operational behaviour of logic languages. Theoretical Computer Science, 1988. To appear.Google Scholar
  11. [FLPM88b]
    M. Falaschi, G. Levi, C. Palamidessi, and M. Martelli. A new declarative semantics for logic languages. In Proceedings Conference and Symposium on Logic Programming, MIT press, 1988, pp. 993–1005.Google Scholar
  12. [GCLS88]
    R. Gerth, M. Codish, Y. Lichtenstein, and E. Shapiro. Fully abstract denotational semantics for concurrent prolog. In Proc. Logic In Computer Science, 1988, pp. 320–335.Google Scholar
  13. [Gre87]
    S. Gregory. Parallel logic programming in PARLOG. International Series in Logic Programming, Addison-Wesley, 1987.Google Scholar
  14. [HP79]
    M. Hennessy and G.D. Plotkin. Full abstraction for a simple parallel programming language. In J. Becvar, editor, Proceedings 8th MFCS, Lecture Notes in Computer Science 74, Springer Verlag, 1979, pp. 108–120.Google Scholar
  15. [JM84]
    N.D. Jones and A. Mycroft. Stepwise development of operational and denotational semantics for prolog. In Proc. 1984 Int. Symp. on Logic Programming, 1984.Google Scholar
  16. [KK89]
    P. Knijnenburg and J.N. Kok. A compositional semantics for the finite failures of a language with atomized statements. Technical report, University of Utrecht, 1989.Google Scholar
  17. [KR88]
    J.N. Kok and J.J.M.M. Rutten. Contractions in comparing concurrency semantics. In Proceedings 15th ICALP, Tampere, Lecture Notes in Computer Science 317, Springer Verlag, 1988, 317–332. To appear in Theoretical Computer ScienceGoogle Scholar
  18. [Lev88]
    G. Levi. A new declarative semantics of flat guarded horn clauses. Technical Report, ICOT, Tokyo, 1988.Google Scholar
  19. [Le2]
    G. Levi. Models, unfolding rules and fixed point semantics. Proc. Symp. on Logic Programming, 1988, pp. 1649–1665.Google Scholar
  20. [LMM88]
    J.-L. Lassez, M.J. Maher, and K. Marriot. Unification revisited. In J. Minker, editor, Foundations of deductive databases and logic programming, Morgan Kaufmann, Los Altos, 1988.Google Scholar
  21. [LP85]
    G. Levi and C. Palamidessi. The declarative semantics of logical read-only variables. In Proc. Symp. on Logic Programming, IEEE Comp. Society Press, 1985, pp. 128–137.Google Scholar
  22. [LP87]
    G. Levi and C. Palamidessi. An approach to the declarative semantics of synchronization in logic languages. In Proc. 4th Int. Conference on Logic Programming, 1987, 877–893.Google Scholar
  23. [Pal88]
    C. Palamidessi. A fixpoint semantics for Guarded Horn Clauses. Technical Report CS-R8833, Centre for Mathematics and Computer Science, Amsterdam, 1988.Google Scholar
  24. [Rin88]
    G.A. Ringwood. Parlog 86 and the dining logicians. Comm. ACM, 31:10–25, 1988.Google Scholar
  25. [Sar87a]
    V.A. Saraswat: The concurrent logic programming language CP: definition and operational semantics, in: Conference Record of the Fourteenth Annual ACM Symposium on Principles of Programming Languages, Munich, West Germany, January 21–23, 1987, pp. 49–62.Google Scholar
  26. [Sha83]
    E.Y. Shapiro. A subset of concurrent prolog and its interpreter. Technical Report TR-003, ICOT, Tokyo, 1983.Google Scholar
  27. [Sha87]
    E.Y. Shapiro. Concurrent prolog, a progress report. In W. Bibel and Ph. Jorrand, editors, Fundamentals of Artificial Intelligence, Springer Verlag, 1987. Lecture Notes in Computer Science 232.Google Scholar
  28. [Sh83]
    E.Y. Shapiro. A subset of concurrent prolog and its interpreter. Tech. Report TR-003, ICOT, Tokyo, 1983.Google Scholar
  29. [Ued85]
    K. Ueda. Guarded Horn Clauses. Technical Report TR-103, ICOT, 1985. Revised in 1986. A revised version is in E. Wada, editor, Proceedings Logic Programming, pages 168–179, Springer Verlag, 1986. LNCS 221.Google Scholar
  30. [Ued86]
    K. Ueda. Guarded Horn Clauses: A Parallel Logic Programming Language with the Concept of a Guard. Technical Report TR-208, ICOT, 1986. Revised in 1987. Also to appear in M. Nivat and K. Fuchi, editors, Programming of Future Generation Computers, North Holland, 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Frank S. de Boer
    • 1
  • Joost N. Kok
    • 2
  • Catuscia Palamidessi
    • 3
  • Jan J. M. M. Rutten
    • 1
  1. 1.Centre for Mathematics and Computer ScienceAmsterdamThe Netherlands
  2. 2.Department of Computer ScienceUniversity of UtrechtUtrechtThe Netherlands
  3. 3.Dipartimento di InformaticaUniversità di PisaPisaItaly

Personalised recommendations