Results 1 
4 of
4
Naive Reverse can be Linear
 8th Int. Conf. Logic Programming
, 1991
"... We propose a new implementation of logic programming with higherorder terms. In order to illustrate the properties of our implementation, we apply the coding of lists as functions to the context of logic programming. As a sideeffect, we show that higherorder unification is a good tool for manipul ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
We propose a new implementation of logic programming with higherorder terms. In order to illustrate the properties of our implementation, we apply the coding of lists as functions to the context of logic programming. As a sideeffect, we show that higherorder unification is a good tool for manipulating the functionlists. It appears that the efficiency of the program thus obtained relies critically upon the implementation of higherorder operations (unification and reduction). In particular, we show that a good choice for datastructures and reduction strategy yields a linear naive reverse. 1 Introduction The extension of Prolog to higherorder terms has been proposed by Miller and Nadathur[6]. The prototypal system is Prolog, of which we know two implementations: a Prolog based implementation and a Lisp based one. The first one was intended for experimental use and is very inefficient. We shall only refer to the Lisp based implementation. We propose another implementation in which ...
Higher Order Babel: Language and Implementation
 In editors Proc. 5th International Workshop on Extensions of Logic Programming ELP'96
, 1996
"... . We present the functional logic language Higher Order Babel which provides higher order unification for parameter passing and solving equations. When searching for a function which solves an equation, not only "polynomial functions" but also defined functions are taken into account. In contrast to ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
. We present the functional logic language Higher Order Babel which provides higher order unification for parameter passing and solving equations. When searching for a function which solves an equation, not only "polynomial functions" but also defined functions are taken into account. In contrast to all other programming languages which support higher order unification HOBabel replaces the expensive fireduction by the much more efficient combinator reduction. Moreover, HOBabel is more homogeneous since it does not distinguish functions which only represent data structures and defined functions which are equipped with the full execution mechanism of the language. 1 Introduction In comparison to purely logic programming languages, integrated functional logic programming languages allow a more efficient implementation since functions are deterministic and this determinism can be exploited to reduce the search space. On the other hand, functional logic languages have more expressive po...
The Architecture of an Implementation of λProlog: Prolog/Mali
, 1992
"... λProlog is a logic programming language accepting a more general clause form than standard Prolog (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λterms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goaldirected ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
λProlog is a logic programming language accepting a more general clause form than standard Prolog (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λterms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goaldirected proofs and can still be given procedural semantics. However, the execution of λProlog programs requires several departures from the standard resolution scheme. First, the augmented clause form causes the program (a set of clauses) and the signature (a set of constants) to be changeable, but in a very disciplined way. Second, the new term domain has a semidecidable and infinitary unification theory, and it introduces the need for a fireduction operation at runtime. MALI is an abstract memory that is suitable for storing the searchstate of depthfirst search processes. Its main feature is its efficient memory management. We have used an original PrologtoC translation: predicates are trans...
The Compilation of λProlog and its Execution with MALI
, 1993
"... We present a compiled implementation of λProlog that uses the abstract memory MALI for representing the execution state. λProlog is a logic programming language allowing a more general clause form than Standard Prolog's (namely hereditary Harrop formulas instead of Horn formulas) and using simply ty ..."
Abstract
 Add to MetaCart
We present a compiled implementation of λProlog that uses the abstract memory MALI for representing the execution state. λProlog is a logic programming language allowing a more general clause form than Standard Prolog's (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λterms as a term domain instead of first order terms. The augmented clause form causes the program (a set of clauses) and the signature (a set of constants) to be changeable in a very disciplined way. The new term domain has a semidecidable and infinitary unification theory, and it introduces the need for a fireduction operation at runtime. MALI is an abstract memory that is suitable for storing the searchstate of depthfirst search processes. Its main feature is its efficient memory management. We have used an original λPrologtoC translation along which predicates are transformed into functions operating on continuations for handling failure and success in unifications, and change...