Many recent proposals for the integration of functional and logic programming use conditional term rewriting systems (CTRS) as programs and narrowing as goal solving mechanism. This paper speciies a computation strategy for lazy conditional narrowing, based on the idea of transforming patterns into decision trees to control the computation. The speciication… (More)
We propose a new approach to declarative programming which integrates the functional and relational paradigms by taking possibly non-deterministic lazy functions as the fundamental notion. Programs in our paradigm are theories in a constructor based conditional rewriting logic. We present proof calculi and a model theory for this logic, and we prove the… (More)
This paper is a revised and substantially extended presentation of the results from (?; ?) Abstract We propose a general framework for first-order functional logic programming, supporting lazy functions, non-determinism and polymorphic datatypes whose data constructors obey a set C of equational axioms. On top of a given C, we specify a program as a set R… (More)
We describe in this paper a graph narrowing machine that has been designed for the implementation of a higher-order functional logic language. To execute functional logic programs the machine must be capable of performing uniication and backtracking. Some details about the implementation of the new machine on an Occam/transputer system are given.
The paper investigates the implementation of lazy narrowing in the framework of a graph reduction machine. By extending an appropriate architecture for purely functional languages an abstract graph narrowing machine for a functional logic language is constructed. The machine is capable of performing uniication and backtracking. The techniques used in… (More)