Results 1  10
of
19
Continuation Semantics for Prolog with Cut
, 1989
"... We present a denotational continuation semantics for Prolog with cut. First a uniform language B is studied, which captures the control flow aspects of Prolog. The denotational semantics for B is proven equivalent to a transition system based operational semantics. The congruence proof relies on the ..."
Abstract

Cited by 37 (5 self)
 Add to MetaCart
We present a denotational continuation semantics for Prolog with cut. First a uniform language B is studied, which captures the control flow aspects of Prolog. The denotational semantics for B is proven equivalent to a transition system based operational semantics. The congruence proof relies on the representation of the operational semantics as a chain of approximations and on a convenient induction principle. Finally, we interpret the abstract language B such that we obtain equivalent denotational and operational models for Prolog itself. Section 1 Introduction In the nice textbook of Lloyd [Ll] the cut, available in all Prologsystems, is described as a controversial control facility. The cut, added to the Horn clause logic for efficiency reasons, affects the completeness of the refutation procedure. Therefore the standard declarative semantics using Herbrand models does not adequately capture the computational aspects of the Prologlanguage. In the present paper we study the Prolog...
Modelling Prolog Control
, 1992
"... The goal of this paper is to construct a semantic basis for the abstract interpretation of Prolog programs. Prolog is a wellknown logic programming language which applies a depthfirst search strategy in order to provide a practical approximation of Horn clause logic. While pure logic programming h ..."
Abstract

Cited by 28 (13 self)
 Add to MetaCart
The goal of this paper is to construct a semantic basis for the abstract interpretation of Prolog programs. Prolog is a wellknown logic programming language which applies a depthfirst search strategy in order to provide a practical approximation of Horn clause logic. While pure logic programming has clean fixpoint, modeltheoretic and operational semantics the situation for Prolog is different. Difficulties in capturing the declarative meaning of Prolog programs have led to various semantic definitions which attempt to encode the search strategy in different mathematical frameworks. However semantic based analyses of Prolog are typically achieved by abstracting the more simple but less precise declarative semantics of pure logic Programs. We propose instead to model Prolog control in a simple constraint logic language which is presented together with its declarative and operational semantics. This enables us to maintain the usual approach to declarative semantics of logic programs wh...
Oracle Semantics for Prolog
 ALGEBRAIC AND LOGIC PROGRAMMING, PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE, VOLUME 632 OF LECTURE NOTES IN COMPUTER SCIENCE
, 1992
"... This paper proposes to specify semantic definitions for logic programming languages such as Prolog in terms of an oracle which specifies the control strategy and identifies which clauses are to be applied to resolve a given goal. The approach is quite general. It is applicable to Prolog to specify b ..."
Abstract

Cited by 15 (5 self)
 Add to MetaCart
This paper proposes to specify semantic definitions for logic programming languages such as Prolog in terms of an oracle which specifies the control strategy and identifies which clauses are to be applied to resolve a given goal. The approach is quite general. It is applicable to Prolog to specify both operational and declarative semantics as well as other logic programming languages. Previous semantic definitions for Prolog typically encode the sequential depthfirst search of the language into various mathematical frameworks. Such semantics mimic a Prolog interpreter in the sense that following the "leftmost" infinite path in the computation tree excludes computation to the right of this path from being considered by the semantics. The basic idea in this paper is to abstract away from the sequential control of Prolog and to provide a declarative characterization of the clauses to apply to a given goal. The decision whether or not to apply a clause is viewed as a query to an oracle wh...
Prolog's Control Constructs in a Functional . . .
 INTERNATIONAL JOURNAL OF FOUNDATIONS OF COMPUTER SCIENCE
"... The purpose of this article is twofold. First, we show that Prolog's control constructs can be smoothly integrated into a functional language like Haskell. The resulting `language', termed embedded Prolog, incorporates many of the features prescribed by the Prolog ISO standard: control ..."
Abstract

Cited by 13 (5 self)
 Add to MetaCart
The purpose of this article is twofold. First, we show that Prolog's control constructs can be smoothly integrated into a functional language like Haskell. The resulting `language', termed embedded Prolog, incorporates many of the features prescribed by the Prolog ISO standard: control constructs including the cut, all solution collecting functions, and error handling facilities. Embedded Prolog lacks some concepts such as logical variables but it inherits all of Haskell's strengths, eg static polymorphic typing, higher order functions etc. Technically, the integration is achieved using monads and monad transformers. One of the main innovations is the de nition of a backtracking monad transformer, which allows us to combine backtracking with exception handling and interaction. Second, we work towards an axiomatization of the operations, through which the computational features are accessed. Equations are used to lay down the meaning of the various operations and their interrelations enabling the programmer to reason about programs in a simple calculational style. The axiomatization is applied to show that each nite computation has a simple canonical form.
A Logical Semantics for DepthFirst Prolog with Ground Negation
 Theoretical Computer Science
, 1993
"... : A sound and complete semantics is given for sequential, depthfirst logic programming with a version of negation as failure. The semantics is logical in the sense that it is built up only from valuation functions (multivalued logic interpretations in the style of Fitting and Kunen) and logically ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
: A sound and complete semantics is given for sequential, depthfirst logic programming with a version of negation as failure. The semantics is logical in the sense that it is built up only from valuation functions (multivalued logic interpretations in the style of Fitting and Kunen) and logicallymotivated equivalence relations between formulas. The notion of predicate folding and unfolding with respect to a program (Tamaki, Sato, Levi et al.) and the universal notion of "disjunctive unfolding" (Andrews) are important elements of this semantics. The negation used is the version which returns an error indication whenever it is invoked on a nonground goal. It is theoretically interesting that this form of negation, along with the lefttoright processing of depthfirst logic programming, can be characterized logically with fourvalued interpretations over an extended alphabet of terms. The fourth truth value, N , can be read operationally as "floundering on negation". The extension of...
Prological Features In A Functional Setting Axioms And Implementations
 In Third Fuji Int. Symp. on Functional and Logic Programming
, 1998
"... this paper is twofold. First, we show that Prological features ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
this paper is twofold. First, we show that Prological features
Comparing Negation in Logic Programming and in Prolog
, 1994
"... We compare here two uses of negation  in logic programming and in Prolog. As in Prolog negation is defined by means of metaprogramming facilities and the cut operator, this requires a careful reexamination of the assumptions about the underlying syntax and a precise definition of the computatio ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We compare here two uses of negation  in logic programming and in Prolog. As in Prolog negation is defined by means of metaprogramming facilities and the cut operator, this requires a careful reexamination of the assumptions about the underlying syntax and a precise definition of the computational processes involved. After taking care of these matters we establish a formal result showing an equivalence in appropriate sense between these two uses of negation. This result allows us to argue about correctness of various known Prolog programs which use negation by reasoning about the corresponding general logic programs.
A Linear Operational Semantics for Termination and Complexity Analysis of ISO Prolog
, 2011
"... We present a new operational semantics for Prolog which covers all constructs in the corresponding ISO standard (including “nonlogical” concepts like cuts, metaprogramming, “all solution ” predicates, dynamic predicates, and exception handling). In contrast to the classical operational semantics f ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We present a new operational semantics for Prolog which covers all constructs in the corresponding ISO standard (including “nonlogical” concepts like cuts, metaprogramming, “all solution ” predicates, dynamic predicates, and exception handling). In contrast to the classical operational semantics for logic programming, our semantics is linear and not based on search trees. This has the advantage that it is particularly suitable for automated program analyses such as termination and complexity analysis. We prove that our new semantics is equivalent to the ISO Prolog semantics, i.e., it computes the same answer substitutions and the derivations in both semantics have essentially the same length.
Modelling ORparallel Execution of Prolog using CHOCS
, 1995
"... A specification of the ORparallel execution of standard Prolog programs, using CHOCS (Calculus of Higher Order Communicating Systems) [24], is presented in the paper. A translation is defined from Prolog programs and goals to CHOCS processes: the execution of the CHOCS process corresponding to a go ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
A specification of the ORparallel execution of standard Prolog programs, using CHOCS (Calculus of Higher Order Communicating Systems) [24], is presented in the paper. A translation is defined from Prolog programs and goals to CHOCS processes: the execution of the CHOCS process corresponding to a goal mimics the ORparallel execution of the original Prolog goal. In the translation, clauses and predicate definitions of a Prolog program correspond to processes. To model ORparallelism, the processes P 1 ; \Delta \Delta \Delta ; P n , corresponding to clauses C 1 ; \Delta \Delta \Delta ; C n (having the same head predicate p) start their execution concurrently, but, in order to respect the depthfirst search rule of Prolog, each P i is guarded by the termination of the executions of processes P j , j ! i. In the final part of the paper, we show how to obtain models of different real implementations of ORparallel execution of Prolog by slight modification of the previous model. Th...