Results 1 
3 of
3
Parallel Evaluation Strategies for Functional Logic Languages
 In Proc. of the Fourteenth International Conference on Logic Programming (ICLP’97
, 1997
"... We introduce novel, sound, complete, and locally optimal evaluation strategies for functional logic programming languages. Our strategies combine, in a nontrivial way, two landmark techniques in this area: the computation of unifiers performed by needed narrowing in inductively sequential rewrite s ..."
Abstract

Cited by 44 (26 self)
 Add to MetaCart
We introduce novel, sound, complete, and locally optimal evaluation strategies for functional logic programming languages. Our strategies combine, in a nontrivial way, two landmark techniques in this area: the computation of unifiers performed by needed narrowing in inductively sequential rewrite systems and the simultaneous reduction of a necessary set of redexes performed by rewriting in weakly orthogonal, constructorbased rewrite systems. First, we define a sequential strategy similar in scope to other narrowing strategies used in modern lazy functional logic languages. Then, based on the sequential strategy, we define a parallel narrowing strategy that has several noteworthy characteristics: it is the first complete narrowing strategy which evaluates ground expressions in a fully deterministic, optimal way; it computes shortest derivations and minimal sets of solutions on inductively sequential rewrite systems; and when combined with term simplification, it subsumes and improves all r...
Under consideration for publication in Theory and Practice of Logic Programming 1 Demand Analysis with Partial Predicates∗
"... ..."
(Show Context)
Recovering Sequentiality in FunctionalLogic Programs
"... . Efficient code generation in implementations of functional logic languages relies on the sequentiality of the program rules  existence of an optimal evaluation order for arguments. Parallel evaluation of arguments in the presence of free variables is out of the question due to the possibility o ..."
Abstract
 Add to MetaCart
. Efficient code generation in implementations of functional logic languages relies on the sequentiality of the program rules  existence of an optimal evaluation order for arguments. Parallel evaluation of arguments in the presence of free variables is out of the question due to the possibility of backtracking and sharing of these variables among different arguments. In this paper we show that the lack of sequentiality is often syntactic rather than semantic and that a clever use of type information and strictness analysis can enable a compiler to generate sequential code from most programs. Keywords: Sequentiality, Abstract Interpretation, Functional Logic Programming. 1 Introduction The relationship between sequential term rewriting systems [8] and the implementation of lazy functional programming languages is well known  see, for instance [16, 15] for an introduction to the subject. The typical example is parallel or, defined by the equations or true x = true or x true = true...