Simple Operational and Denotational Semantics for Prolog with Cut

Abstract We present a research work on the formal study of the Prolog widely-used cut operator. The behaviour of control structures is defined by a reference interpreter described as a rewriting systems (operational semantics). The denotational semantics are shown to be expressible in terms of “stream-generating functions”, which therefore constitute an adequate framework for the study of the properties of Prolog control structures. As an application, we present equivalence rules for Prolog programs, and we discuss the replacement of cut by an if-then-else operator in Prolog dialects.

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

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

[3]  Michel Billaud Formalisation des structures de contrôle de PROLOG , 1985, SPLT.

[4]  M. Billaud,et al.  Prolog control structures: A formalization and its applications , 1988 .

[5]  M. H. van Emden An Algorithm for Interpreting Prolog Programs , 1982, ICLP.

[6]  Dana S. Scott,et al.  Outline of a Mathematical Theory of Computation , 1970 .

[7]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[8]  George Markowsky,et al.  Bases for chain-complete posets , 1975, 16th Annual Symposium on Foundations of Computer Science (sfcs 1975).

[9]  Krzysztof R. Apt,et al.  Contributions to the Theory of Logic Programming , 1982, JACM.

[10]  Bruno Courcelle,et al.  Algebraic families of interpretations , 1976, 17th Annual Symposium on Foundations of Computer Science (sfcs 1976).