Cut & Paste — defining the impure primitives of Prolog

  • Chris Moss
Session 7b: Models Of Computation And Implementation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 225)


Prolog consists of the Horn Clause subset of predicate logic interpreted by a fixed (left to right, depth first) evaluation strategy and a number of non-logical primitive predicates. The most fundamental of these are ‘cut’ for control of execution, ‘assert’ and ‘retract’ for changing the database, and input-output. Whatever the desirability of these features for the logic programming languages of the future there is general agreement as to the need of these for Prolog as a practical programming language for today.

Despite their apparently simple definition there is considerable diversity in the details of the implementation of these primitives and some experiments to demonstrate this diversity are reported. We then suggest definitions that could be agreed and implemented by everyone.


Predicate Logic Horn Clause Prolog Program Logic Programming Language Prolog System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. G. Smolke: Making Control and Data Flow in Logic Programs Explicit. 1984 ACM Functional Programming Conferences. p311–322.Google Scholar
  2. D.H.D. Warren, L.M. Pereira, F.C.N. Pereira: PROLOG — The language and its implementation compared with Lisp. Proc. Symposium on Artificial Intelligence and Programming Languages, 1977. SIGPLAN Vol. 12 (8).Google Scholar
  3. D.H.D. Warren: Sequential and Parallel Implementations of Prolog. Seminar at Imperial College 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Chris Moss
    • 1
  1. 1.Imperial CollegeLondon

Personalised recommendations