Design and implementation of a generic, logic and functional programming language
Proc. of the European symposium on programming on ESOP 86
Experiences with the RAP system-a specification interpreter combining term rewriting and resolution
Proc. of the European symposium on programming on ESOP 86
Completion of a set of rules modulo a set of equations
SIAM Journal on Computing
Improving basic narrowing techniques
on Rewriting techniques and applications
Machine intelligence 11
An implementation of narrowing
Journal of Logic Programming
Journal of Symbolic Computation
Complete sets of transformations for general E-unification
Theoretical Computer Science - Second Conference on Rewriting Techniques and Applications, Bordeaux, May 1987
Kernel-LEAF: a logic plus functional language
Journal of Computer and System Sciences
Handbook of theoretical computer science (vol. B)
Logic programming with functions and predicates: the language Babel
Journal of Logic Programming
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Handbook of logic in artificial intelligence and logic programming
Dynamic detection of determinism in functional logic languages
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity
Journal of the ACM (JACM)
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiling Logic Programs with Equality
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
On the Interaction of Lazy Evaluation and Backtracking
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Improving Control of Logic Programs by Using Functional Logic Languages
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
A Demand Driven Computation Strategy for Lazy Narrowing
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
Efficient Lazy Narrowing using Demandedness Analysis
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
RTA '89 Proceedings of the 3rd International Conference on Rewriting Techniques and Applications
Equation Solving in Conditional AC-Theories
Proceedings of the Second International Conference on Algebraic and Logic Programming
Proceedings of the Third International Conference on Algebraic and Logic Programming
Proceedings of the Third International Conference on Algebraic and Logic Programming
Efficient Implementation of Narrowing and Rewriting
PDK '91 Proceedings of the International Workshop on Processing Declarative Knowledge
Canonical Forms and Unification
Proceedings of the 5th Conference on Automated Deduction
On Comleteness of Narrowing Strategies
CAAP '88 Proceedings of the 13th Colloquium on Trees in Algebra and Programming
Lazy Narrowing in a Graph Machine
Proceedings of the Second International Conference on Algebraic and Logic Programming
Efficient Translation of Lazy Functional Logic Programs into Prolog
LOPSTR '95 Proceedings of the 5th International Workshop on Logic Programming Synthesis and Transformation
Complete Strategies for Term Graph Narrowing
WADT '98 Selected papers from the 13th International Workshop on Recent Trends in Algebraic Development Techniques
A general framework for lazy functional logic programming with algebraic polymorphic types
Theory and Practice of Logic Programming
Variant Narrowing and Equational Unification
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Languages that integrate functional and logic programming styles with a complete operational semantics are based on narrowing. In order to avoid useless computations, lazy narrowing strategies have been proposed in the past. This paper presents an improvement of lazy narrowing by incorporating deterministic simplification steps into lazy narrowing derivations. These simplification steps reduce the search space so that in some cases infinite search spaces are reduced to finite ones. We consider two classes of programs where this strategy can be applied. Firstly, we show soundness and completeness of our strategy for functional logic programs based on ground confluent and terminating rewrite systems. Then, we show similar results for constructor-based weakly orthogonal (not necessarily terminating) rewrite systems. Finally, we demonstrate the improved operational behavior by means of several examples. Since most functional logic languages are based on programs belonging to one of these classes, our result is a significant step to improve the operational semantics of existing functional logic languages.