Results 1 
7 of
7
An Implementation of Narrowing Strategies
 Journal of the ACM
, 2001
"... This paper describes an implementation of narrowing, an essential component of implementations of modern functional logic languages. These implementations rely on narrowing, in particular on some optimal narrowing strategies, to execute functional logic programs. We translate functional logic progra ..."
Abstract

Cited by 290 (120 self)
 Add to MetaCart
This paper describes an implementation of narrowing, an essential component of implementations of modern functional logic languages. These implementations rely on narrowing, in particular on some optimal narrowing strategies, to execute functional logic programs. We translate functional logic programs into imperative (Java) programs without an intermediate abstract machine. A central idea of our approach is the explicit representation and processing of narrowing computations as data objects. This enables the implementation of operationally complete strategies (i.e., without backtracking) or techniques for search control (e.g., encapsulated search). Thanks to the use of an intermediate and portable representation of programs, our implementation is general enough to be used as a common back end for a wide variety of functional logic languages.
A Deterministic Lazy Narrowing Calculus
 Journal of Symbolic Computation
, 1998
"... In this paper we study the nondeterminism between the inference rules of the lazy narrowing calculus lnc (Middeldorp et al., 1996). We show that all nondeterminism can be removed without losing the important completeness property by restricting the underlying term rewriting systems to leftlinear ..."
Abstract

Cited by 23 (4 self)
 Add to MetaCart
In this paper we study the nondeterminism between the inference rules of the lazy narrowing calculus lnc (Middeldorp et al., 1996). We show that all nondeterminism can be removed without losing the important completeness property by restricting the underlying term rewriting systems to leftlinear con uent constructor systems and interpreting equality as strict equality. For the subclass of orthogonal constructor systems the resulting narrowing calculus is shown to have the nice property that solutions computed by di erent derivations starting from the same goal are incomparable. 1.
A Complete Selection Function for Lazy Conditional Narrowing
 Journal of Functional and Logic Programming
, 2002
"... . This paper is concerned with the lazy conditional narrowing calculus lcnc. In an earlier paper we proved that this calculus is complete with respect to normalizable solutions for the class of conuent but not necessarily terminating conditional rewrite systems without socalled extra variables ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
. This paper is concerned with the lazy conditional narrowing calculus lcnc. In an earlier paper we proved that this calculus is complete with respect to normalizable solutions for the class of conuent but not necessarily terminating conditional rewrite systems without socalled extra variables in the conditional parts of the rewrite rules. Unfortunately, the proof does not provide any useful complete selection function, hence in implementations we need to backtrack over the choice of equations in goals in order to guarantee that all solutions are enumerated. This is in contrast to the unconditional case where completeness with respect to the leftmost selection function is known. In this paper we close the gap by proving the completeness of lcnc with respect to the leftmost selection strategy for the abovementioned class of conditional rewrite systems. 1 Introduction Narrowing (Fay [5], Hullot [16]) was originally invented as a general method for solving unication prob...
Implementation of Lazy Narrowing Calculi in Mathematica
, 1997
"... This paper describes the implementation of narrowing calculi developed by Symbolic COmputation REsearch group (SCORE) at the University of Tsukuba. Narrowing was originally conceived as an Eunification procedure in the framework of equational theorem proving, but was rediscovered as a computation mo ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
This paper describes the implementation of narrowing calculi developed by Symbolic COmputation REsearch group (SCORE) at the University of Tsukuba. Narrowing was originally conceived as an Eunification procedure in the framework of equational theorem proving, but was rediscovered as a computation model of functional logic programming languages. Narrowing as given in the standard literature is a complex operation. Several attempts have been made to simulate narrowing by a simple inference system defined by a small set of inference rules. Among these, are narrowing calculi called OINC (OutsideIn Narrowing Calculus) of T. Ida and K. Nakahara [8], LNC (Lazy Narrowing Calculus) of A. Middeldorp, S. Okui, and T. Ida [13], and LCNC (Lazy Conditional Narrowing Calculus) of M. Hamada and A. Middeldorp [3]. In this paper we give full implementation of these three narrowing calculi using Mathematica. We demonstrate that the implementation of the narrowing calculi is feasible. This means that exi...
CFLP: a Distributed Constraint Solving System for Functional Logic Programming
 DAPSYS'98 Workshop on Distributed and Parallel Systems
, 1998
"... CFLP is a distributed software system which aims at integrating constraint solving capabilities over various domains in a functional logic programming environment. In this paper we report on the current status of the development of the system. The general structure and the functionality of the syste ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
CFLP is a distributed software system which aims at integrating constraint solving capabilities over various domains in a functional logic programming environment. In this paper we report on the current status of the development of the system. The general structure and the functionality of the system components are presented. Keywords Functional Logic Programming, Constraint Solving, Distributed Systems. I Introduction Lazy narrowing (LN) [5] is a goal directed method in functional logic programming (FLP) for solving equational goals in a topdown or outsidein manner. Recent refinements of LN towards programming applications lead to successful implementations that can be used as starting point of developing an FLP language. One of the recent trends in declarative programming is the possibility to extend FLP with constraint solving capabilities. The incorporation of the CLP scheme proposed by Jaffar and Lassez [3] showed the possibility to integrate constraint solving capabilities...
A Distributed System for Solving Equational Constraints Based on Lazy Narrowing Calculi
, 1999
"... In this paper we describe the architecture and implementation of a system that aims at extending in a consistent way a functional logic programming language with solving techniques of various constraint solving systems. The system is called CFLP (Constrained Functional Logic Programming language), a ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In this paper we describe the architecture and implementation of a system that aims at extending in a consistent way a functional logic programming language with solving techniques of various constraint solving systems. The system is called CFLP (Constrained Functional Logic Programming language), and consists of a lazy functional logic interpreter extended in two directions: the possibility to specify constraints, and the possibility to specify AND and ORparallelism. For solving the constraints, a distributed constraint solving system was implemented.