Demandness in Rewriting and Narrowing

Abstract The traditional investigation of rewriting and narrowing strategies aims at establishing fundamental properties, such as soundness, completeness and/or optimality, of a strategy. In this work, we analyze and compare rewriting and narrowing strategies from the point of view of the information taken into account by a strategy to compute a step. The notion of demandness provides a suitable framework for presenting and comparing well-known strategies. We find the existence of an almost linear sequence of strategies that take into account more and more information. We show on examples that, as we progress on this sequence, a strategy becomes more focused and avoids some useless steps computed by strategies preceding it in this sequence. Our work, which is still in progress, clarifies the behavior of similar or related strategies and it promises to simplify the transfer of some results from one strategy to another. It also suggest that the notion of demandness is both atomic and fundamental to the study of strategies.

[1]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[2]  Sergio Antoy Definitional Trees , 1992, ALP.

[3]  Sergio Antoy Non-Determinism and Lazy Evaluation in Logic Programming , 1991, LOPSTR.

[4]  Salvador Lucas Lazy Rewriting and Context-Sensitive Rewriting , 2002, Electron. Notes Theor. Comput. Sci..

[5]  Sergio Antoy Optimal Non-deterministic Functional Logic Computations , 1997, ALP/HOA.

[6]  Sergio Antoy,et al.  Evaluation strategies for functional logic programming , 2001, J. Symb. Comput..

[7]  Sergio Antoy Constructor-based conditional narrowing , 2001, PPDP '01.

[8]  Michael J. O'Donnell,et al.  Computing in systems described by equations , 1977, Lecture Notes in Computer Science.

[9]  Ralf Hinze,et al.  Haskell 98 — A Non−strict‚ Purely Functional Language , 1999 .

[10]  S. Antoy Deenitional Trees , 1992 .

[11]  María Alpuente,et al.  Specialization of lazy functional logic programs , 1997, PEPM.

[12]  Rachid Echahed,et al.  A needed narrowing strategy , 2000, JACM.

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

[14]  Michael Hanus,et al.  Curry: an integrated functional logic language (version 0 , 2003 .

[15]  Rita Loogen,et al.  A Demand Driven Computation Strategy for Lazy Narrowing , 1993, PLILP.

[16]  LanguagesSERGIO Parallel Evaluation Strategies for Functional Logic Languages , 1997 .

[17]  Salvador Lucas Context-sensitive rewriting strategies , 2002 .

[18]  Salvador Lucas,et al.  Context-sensitive Computations in Functional and Functional Logic Programs , 1998, J. Funct. Log. Program..

[19]  Salvador Lucas,et al.  Termination of on-demand rewriting and termination of OBJ programs , 2001, PPDP '01.

[20]  Wan Fokkink,et al.  Lazy rewriting on eager machinery , 2000, TOPL.