Formal specification of a prolog compiler

  • Michael Hanus
Attribute Grammars In Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 348)


This paper presents an outline of a formal specification of a compiler and a virtual machine for the programming language Prolog. The specification of the compiler can be transformed into an equivalent Prolog program. The specification of the virtual machine is the basis of an implementation of the virtual machine as an interpreter written in a low-level language. Moreover, the specification may be used for correctness proofs of a Prolog system.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Arbab/Berry 87]
    B. Arbab and D.M. Berry. Operational and Denotational Semantics of Prolog. Journal of Logic Programming (4), pp. 309–329, 1987.Google Scholar
  2. [Clocksin/Mellish 81]
    W.F. Clocksin and C.S. Mellish. Programming in Prolog. Springer, 1981.Google Scholar
  3. [Debray/Mishra 88]
    S.K. Debray and P. Mishra. Denotational and Operational Semantics for Prolog. Journal of Logic Programming (5), pp. 61–91, 1988.Google Scholar
  4. [Deransart/Ferrand 87]
    P. Deransart and G. Ferrand. An Operational Formal Definition of PROLOG. In Proc. 4th IEEE Internat. Symposium on Logic Programming, pp. 162–172, San Francisco, 1987.Google Scholar
  5. [Ganzinger/Giegerich 84]
    H. Ganzinger and R. Giegerich. Attribute Coupled Grammars. In Proceedings of the SIGPLAN '84 Symposium on Compiler Construction, pp. 157–170, Montreal, 1984.Google Scholar
  6. [Ganzinger/Hanus 85]
    H. Ganzinger and M. Hanus. Modular Logic Programming of Compilers. In Proc. IEEE Internat. Symposium on Logic Programming, pp. 242–253, Boston, 1985.Google Scholar
  7. [Jones/Mycroft 84]
    N.D. Jones and A. Mycroft. Stepwise Development of Operational and Denotational Semantics for Prolog. In Proc. IEEE Internat. Symposium on Logic Programming, pp. 281–288, Atlantic City, 1984.Google Scholar
  8. [Kursawe 86]
    P. Kursawe. How to invent a Prolog machine. In Proc. Third International Conference on Logic Programming (London), pp. 134–148. Springer LNCS 225, 1986.Google Scholar
  9. [Lloyd 87]
    J.W. Lloyd. Foundations of Logic Programming. Springer, second, extended edition, 1987.Google Scholar
  10. [Nilsson 84]
    J.F. Nilsson. Formal Vienna-Definition-Method models of Prolog. In J.A. Campbell, editor, Implementations of Prolog, pp. 281–308. Ellis Horwood, 1984.Google Scholar
  11. [ProCom 87]
    Projektgruppe ProCom. Zwischen-und Abschlußbericht der Projektgruppe ProCom (Prolog Compiler). Univ. Dortmund, 1987.Google Scholar
  12. [Van Roy 84]
    P. Van Roy. A Prolog Compiler for the PLM. Report No. UCB/CSD 84/203, Univ. of California, Berkeley, 1984.Google Scholar
  13. [Warren 80]
    D.H.D. Warren. Logic Programming and Compiler Writing. Software — Practice and Experience, Vol. 10, pp. 97–125, 1980.Google Scholar
  14. [Warren 83]
    D.H.D. Warren. An Abstract Prolog Instruction Set. Technical Note 309, SRI International, Stanford, 1983.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Michael Hanus
    • 1
  1. 1.Fachbereich InformatikUniversität DortmundDortmund 50W. Germany

Personalised recommendations