Completion of a set of rules modulo a set of equations
SIAM Journal on Computing
CLEAN: A language for functional graph rewriting
Proc. of a conference on Functional programming languages and computer architecture
Complexity of matching problems
Journal of Symbolic Computation
Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Compilation of pattern matching with associative-commutative functions
TAPSOFT '91 Proceedings of the international joint conference on theory and practice of software development on Colloquium on trees in algebra and programming (CAAP '91): vol 1
An introduction to functional programming
An introduction to functional programming
Determinacy analysis for full Prolog
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Conditional rewriting logic as a unified model of concurrency
Selected papers of the Second Workshop on Concurrency and compositionality
A meta-environment for generating programming environments
ACM Transactions on Software Engineering and Methodology (TOSEM)
Generational garbage collection for Haskell
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Experiments with discrimination-tree indexing and path indexing for term retrieval
Journal of Automated Reasoning
OPAL: design and implementation of an algebraic programming language
Proceedings of the international conference on Programming languages and system architectures
Tree automata help one to solve equational formulae in AC-theories
Journal of Symbolic Computation
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Normalized rewriting: an alternative to rewriting modulo a set of equations
Journal of Symbolic Computation
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Search and imperative programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Term rewriting and all that
Rule-based constraint programming
Fundamenta Informaticae - Special issue on foundations of constraint programming
Building constraint satisfaction problem solvers using rewrite rules and strategies
Fundamenta Informaticae - Special issue on foundations of constraint programming
The functional approach to programming
The functional approach to programming
Complete Sets of Reductions for Some Equational Theories
Journal of the ACM (JACM)
Software—Practice & Experience
Term Indexing
Handbook of Theoretical Computer Science
Handbook of Theoretical Computer Science
Functional Programming and Parallel Graph Rewriting
Functional Programming and Parallel Graph Rewriting
Compiling Haskell by Program Transformation: A Report from the Trenches
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Computational Complexity of Simultaneous Elementary Matching Problems (Extended Abstract)
MFCS '95 Proceedings of the 20th International Symposium on Mathematical Foundations of Computer Science
Specifying Authentication Protocols Using Rewriting and Strategies
PADL '01 Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages
A Compiler for Rewrite Programs in Associative-Commutative Theories
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Associative-Commutative Discrimination Nets
TAPSOFT '93 Proceedings of the International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Left-to-Right Tree Pattern Matching
RTA '91 Proceedings of the 4th International Conference on Rewriting Techniques and Applications
Prototyping Completion with Constraints Using Computational Systems
RTA '95 Proceedings of the 6th International Conference on Rewriting Techniques and Applications
A Compiler for Nondeterministic Term Rewriting Systems
RTA '96 Proceedings of the 7th International Conference on Rewriting Techniques and Applications
Prototyping Combination of Unification Algorithms with the ELAN Rule-Based Programming Language
RTA '97 Proceedings of the 8th International Conference on Rewriting Techniques and Applications
Rewrite Systems for Natural, Integral, and Rational Arithmetic
RTA '97 Proceedings of the 8th International Conference on Rewriting Techniques and Applications
Compilation and Memory Management for ASF+SDF
CC '99 Proceedings of the 8th International Conference on Compiler Construction, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS'99
Optimal Left-to-Right Pattern-Matching Automata
ALP '97-HOA '97 Proceedings of the 6th International Joint Conference on Algebraic and Logic Programming
RRL: A Rewrite Rule Laboratory
Proceedings of the 9th International Conference on Automated Deduction
ICFEM '97 Proceedings of the 1st International Conference on Formal Engineering Methods
Compiling language definitions: the ASF+SDF compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Rewriting logic: roadmap and bibliography
Theoretical Computer Science - Rewriting logic and its applications
ELAN from a rewriting logic point of view
Theoretical Computer Science - Rewriting logic and its applications
Probabilistic Rewrite Strategies. Applications to ELAN
RTA '02 Proceedings of the 13th International Conference on Rewriting Techniques and Applications
Definitions by rewriting in the Calculus of Constructions
Mathematical Structures in Computer Science
Formal validation of pattern matching code
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
ACM Transactions on Design Automation of Electronic Systems (TODAES)
SAEPTUM: verification of ELAN hardware specifications using the proof assistant PVS
SBCCI '06 Proceedings of the 19th annual symposium on Integrated circuits and systems design
Canonical Abstract Syntax Trees
Electronic Notes in Theoretical Computer Science (ENTCS)
Electronic Notes in Theoretical Computer Science (ENTCS)
Dependency Pairs for Rewriting with Non-free Constructors
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
A Rewriting Calculus for Multigraphs with Ports
Electronic Notes in Theoretical Computer Science (ENTCS)
TomML: A Rule Language for Structured Data
RuleML '09 Proceedings of the 2009 International Symposium on Rule Interchange and Applications
An Integrated Development Environment for Pattern Matching Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Rule-based Programming in Java For Protocol Verification
Electronic Notes in Theoretical Computer Science (ENTCS)
From Chemical Rules to Term Rewriting
Electronic Notes in Theoretical Computer Science (ENTCS)
Associative-commutative rewriting on large terms
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Automated generation of kinetic chemical mechanisms using rewriting
ICCS'03 Proceedings of the 2003 international conference on Computational science: PartIII
A pattern matching compiler for multiple target languages
CC'03 Proceedings of the 12th international conference on Compiler construction
Rule-based programming and proving: the ELAN experience outcomes
ASIAN'04 Proceedings of the 9th Asian Computing Science conference on Advances in Computer Science: dedicated to Jean-Louis Lassez on the Occasion of His 5th Cycle Birthday
A provably correct compiler for efficient model checking of mobile processes
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Term rewriting meets aspect-oriented programming
Processes, Terms and Cycles
Hi-index | 0.00 |
First-order languages based on rewrite rules share many features with functional languages, but one difference is that matching and rewriting can be made much more expressive and powerful by incorporating some built-in equational theories. To provide reasonable programming environments, compilation techniques for such languages based on rewriting have to be designed. This is the topic addressed in this paper. The proposed techniques are independent from the rewriting language, and may be useful to build a compiler for any system using rewriting modulo Associative and Commutative (AC) theories. An algorithm for many-to-one AC matching is presented, that works efficiently for a restricted class of patterns. Other patterns are transformed to fit into this class. A refined data structure, namely compact bipartite graph, allows encoding of all matching problems relative to a set of rewrite rules. A few optimisations concerning the construction of the substitution and of the reduced term are described. We also address the problem of non-determinism related to AC rewriting, and show how to handle it through the concept of strategies. We explain how an analysis of the determinism can be performed at compile time, and we illustrate the benefits of this analysis for the performance of the compiled evaluation process. Then we briefly introduce the ELAN system and its compiler, in order to give some experimental results and comparisons with other languages or rewrite engines.