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 | Journal of Logical and Algebraic Methods in Programming |
| Volume | 5 |
| Issue number | 1 |
| DOIs | |
| State | Published - Mar 1988 |
ASJC Scopus subject areas
- Logic