Elements of ML programming (ML97 ed.)
Elements of ML programming (ML97 ed.)
Term rewriting and all that
Building program optimizers with rewriting strategies
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Types and programming languages
Types and programming languages
Introduction to Automata Theory, Languages and Computability
Introduction to Automata Theory, Languages and Computability
A Strafunski Application Letter
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
Term rewriting with traversal functions
ACM Transactions on Software Engineering and Methodology (TOSEM)
The transient combinator, higher-order strategies, and the distributed data problem
Science of Computer Programming - Special issue on program transformation
Regular expression types for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scrap your boilerplate with XPath-like combinators
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transformation of structure-shy programs: applied to XPath queries and strategic functions
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
An Isabelle/HOL-based model of stratego-like traversal strategies
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Programming Errors in Traversal Programs Over Structured Data
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
The programming concept of rewrite strategies supports versatile composition of rewrite rules and control of their application. Such programmability of rewrites can possibly lead to incorrect compositions of rewrites or incorrect applications of rewrites to terms within a strategic rewriting program. In this paper, we explore the analysis of strategic rewriting programs to detect certain programming errors statically. In particular, we introduce fine-grain types to closely approximate the dynamic behavior of rewriting. We develop an expressive type system for a core rewriting language. The resulting system detects programming errors of universally unreachable and failing rewrites. Static detection of such errors can substantially reduce testing and debugging efforts and lead to a more effective use of strategic rewriting in large and complex rewriting problems.