Results 1 
7 of
7
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 constructs ..."
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.
Multiparadigm programming in Oz
 WORKSHOP ON THE FUTURE OF LOGIC PROGRAMMING, INTERNATIONAL LOGIC PROGRAMMING SYMPOSIUM (ILPS 95
, 1995
"... The foundation of Prolog's success is the high abstraction level of its declarative subset, namely firstorder Horn clause logic with SLDNF resolution. What's missing from Prolog is that little attempt is made to give the same foundation to anything outside the declarative subset. We argue that mult ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
The foundation of Prolog's success is the high abstraction level of its declarative subset, namely firstorder Horn clause logic with SLDNF resolution. What's missing from Prolog is that little attempt is made to give the same foundation to anything outside the declarative subset. We argue that multiparadigmprogramming can remedy this lack. We give a foundation for multiparadigmprogramming and we show how it is realized in the Oz language and system. Oz naturally encompasses multiple styles of programming, including (constraint) logic, functional, and concurrent objectoriented programming, by providing a common underlying foundation for these styles through a simple formal model in the concurrent constraint paradigm. We illustrate the integrative programming model with paradigmatical code examples.
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...
Comparative study between Oz 3 and Java
, 1998
"... The differences between Oz and Java are discussed with an emphasis on their different approaches for providing concurrency and synchronization between concurrent threads. The thesis also shows how Java with a small extension can use Oz's approach for concurrency and synchronization. A compiler that ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
The differences between Oz and Java are discussed with an emphasis on their different approaches for providing concurrency and synchronization between concurrent threads. The thesis also shows how Java with a small extension can use Oz's approach for concurrency and synchronization. A compiler that compiles the extended Java language to Oz sourcecode has been implemented. How the translation performed by the compiler is done is also described in this thesis. Supervisor: Per Brand Examiner: SvenOlof Nystrom Passed: 1 Introduction Oz and Java use very different approaches for providing concurrency and synchronization between concurrent threads. These approaches are discussed in this section. We will also discuss if we can gain something by expanding Java with some of Oz's features. 1.1 Synchronization One can see two different types of synchronization that concurrent languages support. One deals with mutual exclusion relationships between threads (i.e. avoids conflicts while shari...
The Witness Properties and the Semantics of the Prolog Cut
, 1999
"... : The semantics of the Prolog "cut" construct is explored in the context of some desirable properties of logic programming systems, referred to as the witness properties. The witness properties concern the operational consistency of responses to queries. A generalization of Prolog with negation as f ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
: The semantics of the Prolog "cut" construct is explored in the context of some desirable properties of logic programming systems, referred to as the witness properties. The witness properties concern the operational consistency of responses to queries. A generalization of Prolog with negation as failure and cut is described, and shown not to have the witness properties. A restriction of the system is then described, which preserves the choice and firstsolution behaviour of cut but allows the system to have the witness properties. A static analysis system is described which allows programs to be computed in a more efficient manner under the restricted system. The restricted system is then given an abstract semantics, which depends essentially on the witness properties. Finally, it is shown how the abstract semantics can be used to simplify proofs of properties of programs. Parts of this paper appeared previously in a different form in the Proceedings of the 1995 International Logic ...
Applications of the Situation Calculus To Formalizing Control and Strategic Information: The Prolog Cut Operator
 In Proceedings of the 15th International Joint Conference on Artificial Intelligence (IJCAI97
"... We argue that the situation calculus is a natural formalism for representing and reasoning about control and strategic information. As a case study, in this paper we provide a situation calculus semantics for the Prolog cut operator, the central search control operator in Prolog. We show that ..."
Abstract
 Add to MetaCart
We argue that the situation calculus is a natural formalism for representing and reasoning about control and strategic information. As a case study, in this paper we provide a situation calculus semantics for the Prolog cut operator, the central search control operator in Prolog. We show that our semantics is wellbehaved when the programs are properly stratified. We also show that according to this semantics, the conventional implementation of the negationas failure operator using cut is provably correct with respect to the stable model semantics. 1 Introduction The situation calculus (McCarthy and Hayes [ 7 ] ) is a formalism for representing and reasoning about actions in dynamic domains. It is a manysorted predicate calculus with some reserved predicate and function symbols. For example, to say that block A is initially clear, we write: H(clear(A); S 0 ); where H is a reserved binary predicate and stands for "holds", and S 0 is a reserved constant symbol denoting th...