Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Future directions in program transformations
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Future directions in program transformation
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
The TAMPR program transformation system: simplifying the development of numerical software
Modern software tools for scientific computing
Modern compiler implementation in Java
Modern compiler implementation in Java
Advanced compiler design and implementation
Advanced compiler design and implementation
Building program optimizers with rewriting strategies
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software—Practice & Experience
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Systematic design of program transformation frameworks by abstract interpretation
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Composing dataflow analyses and transformations
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Meta-programming with Concrete Object Syntax
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
RtA '99 Proceedings of the 10th International Conference on Rewriting Techniques and Applications
Rewriting Strategies for Instruction Selection
RTA '02 Proceedings of the 13th International Conference on Rewriting Techniques and Applications
A Metalanguage for Programming with Bound Names Modulo Renaming
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Term rewriting with traversal functions
ACM Transactions on Software Engineering and Methodology (TOSEM)
FreshML: programming with binders made simple
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Secrets of the Glasgow Haskell Compiler inliner
Journal of Functional Programming
Shrinking lambda expressions in linear time
Journal of Functional Programming
A survey of strategies in rule-based program transformation systems
Journal of Symbolic Computation
CC'05 Proceedings of the 14th international conference on Compiler Construction
Specification of rewriting strategies
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
Stratego/XT 0.16: components for transformation systems
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Better extensibility through modular syntax
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
The spoofax name binding language
Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular and automated type-soundness verification for language extensions
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
The applicability of term rewriting to program transformation is limited by the lack of control over rule application and by the context-free nature of rewrite rules. The first problem is addressed by languages supporting user-definable rewriting strategies. The second problem is addressed by the extension of rewriting strategies with scoped dynamic rewrite rules. Dynamic rules are defined at run-time and can access variables available from their definition context. Rules defined within a rule scope are automatically retracted at the end of that scope. In this paper, we explore the design space of dynamic rules, and their application to transformation problems. The technique is formally defined by extending the operational semantics underlying the program transformation language Stratego, and illustrated by means of several program transformations in Stratego, including constant propagation, bound variable renaming, dead code elimination, function inlining, and function specialization.