Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
Sharlit—a tool for building optimizers
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Combining analyses, combining optimizations
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Composing dataflow analyses and transformations
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modern Compiler Implementation: In ML
Modern Compiler Implementation: In ML
Transforming the .NET intermediate language using path logic programming
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Meta-programming with Concrete Object Syntax
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
How to Uniformly Specify Program Analysis and Transformation with Graph Rewrite Systems
CC '96 Proceedings of the 6th International Conference on Compiler Construction
Imperative Program Transformation by Rewriting
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Automatically proving the correctness of compiler optimizations
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Incremental execution of transformation specifications
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated soundness proofs for dataflow analyses and transformations via local rules
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Stratego/XT 0.16: components for transformation systems
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Program Transformation with Scoped Dynamic Rewrite Rules
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
The JastAdd system — modular extensible compiler construction
Science of Computer Programming
Fusing a Transformation Language with an Open Compiler
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 22nd annual international conference on Supercomputing
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
Combining Aspect-Oriented and Strategic Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Mumbo: A Rule-Based Implementation of a Run-time Program Generation Language
Electronic Notes in Theoretical Computer Science (ENTCS)
Generic flow-sensitive optimizing transformations in C++ with concepts
Proceedings of the 2010 ACM Symposium on Applied Computing
Electronic Notes in Theoretical Computer Science (ENTCS)
Applications of the ASF+SDF meta-environment
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Modular name analysis for java using jastadd
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Program Transformation with Scoped Dynamic Rewrite Rules
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Attribute grammar-based language extensions for java
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Hi-index | 0.00 |
Data-flow transformations used in optimizing compilers are also useful in other programming tools such as code generators, aspect weavers, domain-specific optimizers, and refactoring tools. These applications require source-to-source transformations rather than transformations on a low-level intermediate representation. In this paper we describe the composition of source-to-source data-flow transformations in the program transformation language Stratego. The language supports the high-level specification of transformations by means of rewriting strategy combinators that allow a natural modeling of data- and control-flow without committing to a specific source language. Data-flow facts are propagated using dynamic rewriting rules. In particular, we introduce the concept of dependent dynamic rewrite rules for modeling the dependencies of data-flow facts on program entities such as variables. The approach supports the combination of analysis and transformation, the combination of multiple transformations, the combination with other types of transformations, and the correct treatment of variable binding constructs and lexical scope to avoid free variable capture.