@inproceedings{7c2cbfc4b9bf40c1a582d2e821107a8b,
title = "Oracle semantics for prolog",
abstract = "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.",
author = "Roberto Barbuti and Michael Codish and Roberto Giacobazzi and Michael Maher",
note = "Publisher Copyright: {\textcopyright} Springer-Verlag Berlin Heidelberg 1992.; 3rd International Conference on Algebraic and Logic Programming, 1992 ; Conference date: 02-09-1992 Through 04-09-1992",
year = "1992",
month = jan,
day = "1",
language = "English",
isbn = "9783540558736",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "100--114",
editor = "Giorgio Levi and Helene Kirchner",
booktitle = "Algebraic and Logic Programming - 3rd International Conference, Proceedings",
address = "Germany",
}