Equational logic as a programming language
Equational logic as a programming language
How to replace failure by a list of successes
Proc. of a conference on Functional programming languages and computer architecture
Conditional rewrite rules: Confluence and termination
Journal of Computer and System Sciences
Design and implementation of a generic, logic and functional programming language
Proc. of the European symposium on programming on ESOP 86
Computational semantics of term rewriting systems
Algebraic methods in semantics
Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
Computing in Horn clause theories
Computing in Horn clause theories
Journal of Symbolic Computation
Narrowing and unification in functional programming mechanism for absolute set a bstraction
RTA-89 Proceedings of the 3rd international conference on Rewriting Techniques and Applications
Foundations of Equational Logic Programming
Foundations of Equational Logic Programming
On completeness of narrowing strategies
Theoretical Computer Science - Special issue on the Thirteenth Colleque sur les Arbres en Alge`bre et en Programmation Nancy, March 1988
The specificity rule for lazy pattern-matching in ambiguous term rewrite systems
Proceedings of the third European symposium on programming on ESOP '90
Optimal derivations in weak lambda-calculi and in orthogonal term rewriting systems
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Unification modulo an equality theory for equational logic programming
Journal of Computer and System Sciences
Kernel-LEAF: a logic plus functional language
Journal of Computer and System Sciences
Handbook of theoretical computer science (vol. B)
Sequentiality in orthogonal term rewriting systems
Journal of Symbolic Computation
Logic programming with functions and predicates: the language Babel
Journal of Logic Programming
Implementation of narrowing: the Prolog-based approach
Logic programming languages
Handbook of logic in computer science (vol. 2)
Term graph rewriting: theory and practice
Term graph rewriting: theory and practice
The adequacy of term graph rewriting for simulating term rewriting
Term graph rewriting
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programming in equational logic: beyond strong sequentiality
Information and Computation - Special issue: selections from 1990 IEEE symposium on logic in computer science
Lazy narrowing: strong completeness and eager variable elimination
TAPSOFT '95 Selected papers from the 6th international joint conference on Theory and practice of software development
A unified computation model for functional and logic programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A deterministic lazy narrowing calculus
Journal of Symbolic Computation
Strongly sequential and inductively sequential term rewriting systems
Information Processing Letters
Admissible graph rewriting and narrowing
JICSLP'98 Proceedings of the 1998 joint international conference and symposium on Logic programming
Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity
Journal of the ACM (JACM)
Minimal and Optimal Computations of Recursive Programs
Journal of the ACM (JACM)
Computing in Systems Described by Equations
Computing in Systems Described by Equations
Functional Programming and Parallel Graph Rewriting
Functional Programming and Parallel Graph Rewriting
A Rewriting Logic for Declarative Programming
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
A Complete Narrowing Calculus for Higher-Order Functional Logic Programming
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
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
Needed Narrowing in Prolog (Extended Abstract)
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
On Narrowing, Refutation Proofs and Constraints
RTA '95 Proceedings of the 6th International Conference on Rewriting Techniques and Applications
Higher-Order Narrowing with Definitional Trees
RTA '96 Proceedings of the 7th International Conference on Rewriting Techniques and Applications
Proceedings of the Third International Conference on Algebraic and Logic Programming
Proceedings of the Third International Conference on Algebraic and Logic Programming
Optimal Non-deterministic Functional Logic Computations
ALP '97-HOA '97 Proceedings of the 6th International Joint Conference on Algebraic and Logic Programming
Canonical Forms and Unification
Proceedings of the 5th Conference on Automated Deduction
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
Stop losing sleep over incomplete data type specifications
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Leftmost outside-in narrowing calculi
Journal of Functional Programming
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
A residualizing semantics for the partial evaluation of functional logic programs
Information Processing Letters
High-Level Server Side Web Scripting in Curry
PADL '01 Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages
Improving Functional Logic Programs by Difference-Lists
ASIAN '00 Proceedings of the 6th Asian Computing Science Conference on Advances in Computing Science
A Complete Selection Function for Lazy Conditional Narrowing
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
A Practical Partial Evaluator for a Multi-Paradigm Declarative Language
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
On the Correctness of the Factoring Transformation
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Functional Logic Design Patterns
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Dynamic-Cut with Definitional Trees
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Measuring the Effectiveness of Partial Evaluation in Functional Logic Languages
LOPSTR '00 Selected Papers form the 10th International Workshop on Logic Based Program Synthesis and Transformation
Symbolic Profiling for Multi-paradigm Declarative Languages
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
ObjectCurry: An Object-Oriented Extension of the Declarative Multi-Paradigm Language Curry
IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
An Abstract Machine Based System for a Lazy Narrowing Calculus
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
Constructor-based conditional narrowing
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Thesis: partial evaluation of lazy functional logic programs
AI Communications
Conditional narrowing without conditions
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Refining weakly outermost-needed rewriting and narrowing
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A demand-driven narrowing calculus with overlapping definitional trees
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Rules + strategies for transforming lazy functional logic programs
Theoretical Computer Science
Strategies and analysis techniques in functional program optimization
AI Communications - STAIRS 2002
Cost-Augmented Partial Evaluation of Functional Logic Programs
Higher-Order and Symbolic Computation
New completeness results for lazy conditional narrowing
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Journal of Functional Programming
Specialization of functional logic programs based on needed narrowing
Theory and Practice of Logic Programming
Designing an efficient computation strategy in CFLP(FD) using definitional trees
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
A functional logic database library
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
Fast narrowing-driven partial evaluation for inductively sequential programs
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Type-oriented construction of web user interfaces
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Partial evaluation of lazy functional logic programs: Thesis
AI Communications
Ensuring the quasi-termination of needed narrowing computations
Information Processing Letters
Complete symbolic reachability analysis using back-and-forth narrowing
Theoretical Computer Science - Algebra and coalgebra in computer science
Forward slicing of functional logic programs by partial evaluation
Theory and Practice of Logic Programming
Demand analysis with partial predicates
Theory and Practice of Logic Programming
A new generic scheme for functional logic programming with constraints
Higher-Order and Symbolic Computation
Higher-Order and Symbolic Computation
Modeling Pointer Redirection as Cyclic Term-graph Rewriting
Electronic Notes in Theoretical Computer Science (ENTCS)
Lazy Context Cloning for Non-Deterministic Graph Rewriting
Electronic Notes in Theoretical Computer Science (ENTCS)
Implementing Dynamic-Cut in TOY
Electronic Notes in Theoretical Computer Science (ENTCS)
Lazy Database Access with Persistent Predicates
Electronic Notes in Theoretical Computer Science (ENTCS)
Narrowing and Rewriting Logic: from Foundations to Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
Expander2: Program Verification Between Interaction and Automation
Electronic Notes in Theoretical Computer Science (ENTCS)
Reporting Failures in Functional Logic Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Systematic generation of glass-box test cases for functional logic programs
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Putting declarative programming into the web: translating curry to javascript
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
A simple rewrite notion for call-time choice semantics
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Extra Variables Can Be Eliminated from Functional Logic Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Formal Properties of Needed Narrowing with Similarity Relations
Electronic Notes in Theoretical Computer Science (ENTCS)
Constraint functional logic programming over finite domains
Theory and Practice of Logic Programming
Higher-Order Proof Construction Based on First-Order Narrowing
Electronic Notes in Theoretical Computer Science (ENTCS)
Call pattern analysis for functional logic programs
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Functional-Logic Graph Parser Combinators
RTA '08 Proceedings of the 19th international conference on Rewriting Techniques and Applications
Inductively Sequential Term-Graph Rewrite Systems
ICGT '08 Proceedings of the 4th international conference on Graph Transformations
Declarative Programming of User Interfaces
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
A hybrid programming scheme combining fuzzy-logic and functional-logic resources
Fuzzy Sets and Systems
Qualified Computations in Functional Logic Programming
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
On the cooperation of the constraint domains ℋ, ℛ, and ℱ in cflp
Theory and Practice of Logic Programming
Communications of the ACM
Operational semantics for declarative multi-paradigm languages
Journal of Symbolic Computation
Evaluation strategies for functional logic programming
Journal of Symbolic Computation
Programming with narrowing: A tutorial
Journal of Symbolic Computation
Improving offline narrowing-driven partial evaluation using size-change graphs
LOPSTR'06 Proceedings of the 16th international conference on Logic-based program synthesis and transformation
Forward slicing of multi-paradigm declarative programs based on partial evaluation
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
Multi-paradigm declarative languages
ICLP'07 Proceedings of the 23rd international conference on Logic programming
On a tighter integration of functional and logic programming
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
High-level database programming in curry
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Termination of narrowing in left-linear constructor systems
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
An integrated framework for the diagnosis and correction of rule-based programs
Theoretical Computer Science
Transformation and debugging of functional logic programs
A 25-year perspective on logic programming
Journal of Visual Languages and Computing
High coverage testing of Haskell programs
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Lazy and enforceable assertions for functional logic programs
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
New functional logic design patterns
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
Nondeterminism analysis of functional logic programs
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Polynomial-time inverse computation for accumulative functions with multiple data traversals
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Well-typed narrowing with extra variables in functional-logic programming
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Declarative programming with function patterns
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Overlapping rules and logic variables in functional logic programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Formal Methods in Software and Systems Modeling
Natural rewriting for general term rewriting systems
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Declarative constraint programming with definitional trees
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
A virtual machine for functional logic computations
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Natural narrowing for general term rewriting systems
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Complete symbolic reachability analysis using back-and-forth narrowing
CALCO'05 Proceedings of the First international conference on Algebra and Coalgebra in Computer Science
Specializing narrowing for timetable generation: a case study
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Narrowing data-structures with pointers
ICGT'06 Proceedings of the Third international conference on Graph Transformations
Programming with fuzzy logic and mathematical functions
WILF'05 Proceedings of the 6th international conference on Fuzzy Logic and Applications
Contracts and specifications for functional logic programming
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Smart testing of functional programs in isabelle
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Typing as functional-logic evaluation
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Are needed redexes really needed?
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
A semantics for weakly encapsulated search in functional logic programs
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
A modular and generic analysis server system for functional logic programs
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.02 |
The narrowing relation over terms constitutes the basis of the most important operational semantics of languages that integrate functional and logic programming paradigms. It also plays an important role in the definition of some algorithms of unification modulo equational theories that are defined by confluent term rewriting systems. Due to the inefficiency of simple narrowing, many refined narrowing strategies have been proposed in the last decade. This paper presents a new narrowing strategy that is optimal in several respects. For this purpose, we propose a notion of a needed narrowing step that, for inductively sequential rewrite systems, extends the Huet and Lévy notion of a needed reduction step. We define a strategy, based on this notion, that computes only needed narrowing steps. Our strategy is sound and complete for a large class of rewrite systems, is optimal with respect to the cost measure that counts the number of distinct steps of a derivation, computes only incomparable and disjoint unifiers, and is efficiently implemented by unification.