Lazy Narrowing in a Graph Machine

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 unification and backtracking. The techniques used in functional languages to cope with lazy evaluation are not directly applicable, but must be modified due to the logic component of the implemented language. A prototype implementation of the new machine has been developed.

[1]  Michael Hanus,et al.  Compiling Logic Programs with Equality , 1990, PLILP.

[2]  Ralph Morelli,et al.  Book reivew: LOGIC PROGRAMMING: FUNCTIONS, RELATIONS AND EQUATIONS. Edited by Doug DeGroot and Gary Lindstrom (Prentice-Hall) , 1987, SGAR.

[3]  Nachum Dershowitz,et al.  An Implementation of Narrowing , 1989, J. Log. Program..

[4]  Rita Loogen,et al.  Graph-based Implementation of a Functional Logic Langugage , 1990, ESOP.

[5]  Corrado Moiso,et al.  Implementation of a Parallel Logic + Functional Language , 1990 .

[6]  Uday S. Reddy,et al.  Narrowing as the Operational Semantics of Functional Languages , 1985, SLP.

[7]  David de Frutos Escrig,et al.  On narrowing strategies for partial non-strict functions , 1991 .

[8]  Uday S. Reddy,et al.  Functional logic languages, Part I , 1986, Graph Reduction.

[9]  Juan José Moreno-Navarro,et al.  Logic Programming with Functions and Predicates: The Language BABEL , 1992, J. Log. Program..

[10]  Laurent Fribourg,et al.  SLOG: A Logic Programming Language Interpreter Based on Clausal Superposition and Rewriting , 1985, SLP.

[11]  Elio Giovannetti,et al.  IDEAL: An Ideal Deductive Applicative Language , 1986, SLP.

[12]  Juan José Moreno-Navarro,et al.  BABEL: A Functional and Logic Programming Language based on Constructor Discipline and Narrowing , 1988, ALP.

[13]  David de Frutos-Escrig,et al.  On Narrowing Strategies for Partial Non-Strict Functions , 1991, TAPSOFT, Vol.2.

[14]  Doug DeGroot,et al.  Logic programming - functions, relations and equations , 1986 .

[15]  Rita Loogen,et al.  Distributed Implementation of Programmed Graph Reduction , 1989, PARLE.

[16]  Gary Lindstrom,et al.  Implementing logical variables on a graph reduction architecture , 1986, Graph Reduction.

[17]  Jon Fairbairn,et al.  TIM: A simple, lazy abstract machine to execute supercombinatorics , 1987, FPCA.

[18]  Giorgio Levi,et al.  The Relation between Logic and Functional Languages: A Survey , 1986, J. Log. Program..

[19]  Corrado Moiso,et al.  An Extension of WAM for K-LEAF: A WAM-based Compilation of Conditional Narrowing , 1989, ICLP.

[20]  Corrado Moiso,et al.  Kernel-LEAF: A Logic plus Functional Language , 1991, J. Comput. Syst. Sci..

[21]  Andy Mück Compilation of Narrowing , 1990, PLILP.

[22]  Rachid Echahed,et al.  On Comleteness of Narrowing Strategies , 1988, CAAP.