Abstract
The semantics of PROLOG programs is usually given in terms of the model theory of first-order logic. However, this does not adequately characterizethe computational behavior of PROLOG programs. PROLOG implementations typically use a sequential evaluation strategy based on the textual order of clauses and literals in a program, as well as nonlogical features like cut. In this work we develop a denotational semantics that captures thecomputational behavior of PROLOG. We present a semantics for "cut-free" PROLOG, which is then extended to PROLOG with cut. For each case we develop a congruence proof that relates the semantics to a standard operational interpreter. As an application of our denotational semantics, we show the correctness of some standard "folk" theorems regarding transformations on PROLOG programs.
Original language | English (US) |
---|---|
Pages (from-to) | 61-91 |
Number of pages | 31 |
Journal | The Journal of Logic Programming |
Volume | 5 |
Issue number | 1 |
DOIs | |
State | Published - Mar 1988 |
ASJC Scopus subject areas
- Logic