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
Implementing regular tree expressions
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Pattern-based languages for prototyping of compiler optimizers
Pattern-based languages for prototyping of compiler optimizers
Statically checkable pattern abstractions
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Building program optimizers with rewriting strategies
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Language Prototyping: An Algebraic Specification Approach: Vol. V
Language Prototyping: An Algebraic Specification Approach: Vol. V
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Specification of rewriting strategies
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
Control Localization in Domain Specific Translation
ICSR-7 Proceedings of the 7th International Conference on Software Reuse: Methods, Techniques, and Tools
Stratego: A Language for Program Transformation Based on Rewriting Strategies
RTA '01 Proceedings of the 12th International Conference on Rewriting Techniques and Applications
Cost-Effective Maintenance Tools for Proprietary Languages
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
The SSP: an example of high-assurance systems engineering
HASE'04 Proceedings of the Eighth IEEE international conference on High assurance systems engineering
Program Transformation with Scoped Dynamic Rewrite Rules
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Hi-index | 0.00 |
Stratego is a language for the specification of transformation rules and strategies for applying them. The basic actions of transformations are matching and building instantiations of first-order term patterns. The language supports concise formulation of generic and data type-specific term traversals. One of the unusual features of Stratego is the separation of scope from matching, allowing sharing of variables through traversals. The combination of first-order patterns with strategies forms an expressive formalism for pattern matching. In this paper we discuss three examples of strategic pattern matching: (1) Contextual rules allow matching and replacement of a pattern at an arbitrary depth of a subterm of the root pattern. (2) Recursive patterns can be used to characterize concisely the structure of languages that form a restriction of a larger language. (3) Overlays serve to hide the representation of a language in another (more generic) language. These techniques are illustrated by means of specifications in Stratego.