Reduction Strategies for Declarative Programming

Abstract This paper surveys reduction or evaluation strategies for functional and functional logic programs. Reasonable reduction strategies for declarative languages must be efficiently implementable to be useful in practice. On the other hand, they should also support the programmers to write programs in a declarative way ignoring the influence of the evaluation strategy to the success of a computation as good as possible. We review existing reduction strategies along these lines and discuss some aspects for further investigation.

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

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

[3]  Michael Hanus,et al.  Lazy Narrowing with Simplification , 1997, Comput. Lang..

[4]  Michael Hanus,et al.  A unified computation model for functional and logic programming , 1997, POPL '97.

[5]  Mario Rodríguez-Artalejo,et al.  Functional and Constraint Logic Programming , 2001, CCL.

[6]  J. C. Gonz Alez-Moreno,et al.  An Approach to Declarative Programming Based on a Rewriting Logic , 2022 .

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

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

[9]  Christian Prehofer,et al.  Higher-order narrowing with definitional trees , 1999, Journal of Functional Programming.

[10]  Juan José Moreno-Navarro,et al.  Default Rules: An Extension of Constructive Negation for Narrowing-based Languages , 1994, ICLP.

[11]  Salvador Lucas,et al.  Strongly Sequential and Inductively Sequential Term Rewriting Systems , 1998, Inf. Process. Lett..

[12]  Francisco Javier López-Fraguas,et al.  Proving Failure in Functional Logic Programs , 2000, Computational Logic.

[13]  Mario Rodríguez-Artalejo,et al.  A Higher Order Rewriting Logic for Functional Logic Programming , 1997, ICLP.

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

[15]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .