skip to main content
article
Open Access

A denotational semantics for Prolog

Published:01 October 1989Publication History
Skip Abstract Section

Abstract

A denotational semantics is presented for the language Pro.og. Metapredicates are not considered. Conventional control sequencing is assumed for Prolog's execution. The semantics is nonstandard, and goal continuations are used to explicate the sequencing.

References

  1. 1 APT, K. R., AND VAN EMDEN, M.H. Contributions to the theory of logic programming. J. ACM 29, 3 (July 1982), 841-862. Google ScholarGoogle Scholar
  2. 2 CLOCKSIN, W. F., AND MELLISH, C.S. Programming in Prolog. Springer, New York, 1981. Google ScholarGoogle Scholar
  3. 3 GORDON, M. J. C. The Denotational Description of Programming Languages. Springer, New York, 1979. Google ScholarGoogle Scholar
  4. 4 KOWALSKI, R. Algorithm = logic + control. Commun. ACM 22, 7 (July 1979), 424-436. Google ScholarGoogle Scholar
  5. 5 JONES, N. D., AND MYCROFT, A. Stepwise development of operational and denotationa} semantics for Prolog. In 1984 International Symposium on Logic Programming (Atlantic City, N.J., Feb. 1984). IEEE Computer Society Press, Washington, D.C., 1984, pp. 281-288.Google ScholarGoogle Scholar
  6. 6 STOY, J.E. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge, Mass., 1977. Google ScholarGoogle Scholar
  7. 7 WAND, M. Deriving target code as a representation of continuation semantics. ACM Trans. Program. Lang. Syst. 4, 3 (July 1982), 496-517. Google ScholarGoogle Scholar
  8. 8 WAND, M. A semantic algebra for logic programming. Tech. Rep. 148, Computer Science Dept., Indiana Univ., Aug. 1983.Google ScholarGoogle Scholar

Index Terms

  1. A denotational semantics for Prolog

      Recommendations

      Reviews

      J. Mack Adams

      This paper will probably interest devotees of both denotational semantics and Prolog, but few others. The paper requires a fairly high level of sophistication in denotational semantics but only a moderate familiarity with Prolog. The authors' primary objective of “precisely defining a core Prolog semantics” seems to have been accomplished in principle. The effectiveness of the definition can be questioned, however, as it is not particularly perspicuous. The backtracking aspect of the Prolog search strategy seems to be the primary source of complexity in the definition. The authors state that continuations handle backtracking conveniently, but the seven continuation domains used in the definition and the resulting complicated semantic valuations do not make comprehension a straightforward matter. In the latter part of the paper, the semantics of the metapredicate cut is given. Other metapredicates, such as assert and retract, evidently presented greater difficulties, and the authors indicate that they will be addressed in a subsequent paper.

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Programming Languages and Systems
        ACM Transactions on Programming Languages and Systems  Volume 11, Issue 4
        Oct. 1989
        178 pages
        ISSN:0164-0925
        EISSN:1558-4593
        DOI:10.1145/69558
        Issue’s Table of Contents

        Copyright © 1989 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 October 1989
        Published in toplas Volume 11, Issue 4

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader