Oracle semantics for prolog

Roberto Barbuti, Michael Codish, Roberto Giacobazzi, Michael Maher

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

10 Scopus citations


This paper proposes to specify semantic definitions for Prolog in terms of an oracle which provides information on which clauses are to be applied to resolve a given goal. The approach is quite general. It is applicable to pure Prolog to define both operational and declarative semantics; and can be viewed as a basis for both sequential and parallel implementations. Previous semantic definitions for Prolog typically attempt to encode the sequential depth-first search of the language into various mathematical frameworks. A clause is applied in such semantics only if it is chosen under the search strategy. We prefer instead to specify in a more declarative way the condition upon which a clause is to be applied. The decision whether or not to apply a clause may be viewed as a query to an oracle which may be specified from within the semantics or reasoned about from outside. This approach results in simple and concise semantic definitions which are more useful for arguing the correctness of program transformations and providing the basis for abstract interpretations than previous proposals.

Original languageEnglish
Title of host publicationAlgebraic and Logic Programming - 3rd International Conference, Proceedings
EditorsGiorgio Levi, Helene Kirchner
PublisherSpringer Verlag
Number of pages15
ISBN (Print)9783540558736
StatePublished - 1 Jan 1992
Externally publishedYes
Event3rd International Conference on Algebraic and Logic Programming, 1992 - Volterra, Italy
Duration: 2 Sep 19924 Sep 1992

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume632 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


Conference3rd International Conference on Algebraic and Logic Programming, 1992

ASJC Scopus subject areas

  • Theoretical Computer Science
  • General Computer Science


Dive into the research topics of 'Oracle semantics for prolog'. Together they form a unique fingerprint.

Cite this