The definition of Standard ML
Compilation of functional languages by program transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Compiling with continuations
Sharlit—a tool for building optimizers
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
The design and implementation of Genesis
Software—Practice & Experience
A transformation-based optimiser for Haskell
Science of Computer Programming - Special issue on the 6th European symposium on programming
Language Prototyping: An Algebraic Specification Approach: Vol. V
Language Prototyping: An Algebraic Specification Approach: Vol. V
DFA&OPT-METAFrame: A Tool Kit for Program Analysis and Optimazation
TACAs '96 Proceedings of the Second International Workshop on Tools and Algorithms for Construction and Analysis of Systems
Proceedings of the 2nd CCHSC Workshop on Compiler Compilers and High Speed Compilation
How to Uniformly Specify Program Analysis and Transformation with Graph Rewrite Systems
CC '96 Proceedings of the 6th International Conference on Compiler Construction
Transformation in Intentional Programming
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Pattern-Based Languages for Prototyping of Compiler Optimizers
Pattern-Based Languages for Prototyping of Compiler Optimizers
From ML to Ada: Strongly-typed language interoperability via source translation
Journal of Functional Programming
Shrinking lambda expressions in linear time
Journal of Functional Programming
KHEPERA: a system for rapid implementation of domain specific languages
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Specification of rewriting strategies
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
Haskell and XML: generic combinators or type-based translation?
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Visitor combination and traversal control
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Design patterns for functional strategic programming
Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
A rule-based language for programming software updates
Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
Warm fusion in Stratego: A case study in generation of program transformation systems
Annals of Mathematics and Artificial Intelligence
Scrap your boilerplate: a practical design pattern for generic programming
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
A rule-based language for programming software updates
ACM SIGPLAN Notices
Object-oriented tree traversal with J. J. Forester
Science of Computer Programming - Special issue: Language descriptions, tools and applications (LDTA'01)
Strategic programming meets adaptive programming
Proceedings of the 2nd international conference on Aspect-oriented software development
Universal Regular Path Queries
Higher-Order and Symbolic Computation
Meta-programming with Concrete Object Syntax
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Typed Combinators for Generic Traversal
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Guaranteed Optimization: Proving Nullspace Properties of Compilers
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
RtA '99 Proceedings of the 10th International Conference on Rewriting Techniques and Applications
Stratego: A Language for Program Transformation Based on Rewriting Strategies
RTA '01 Proceedings of the 12th 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
Imperative Program Transformation by Rewriting
CC '01 Proceedings of the 10th International Conference on Compiler Construction
The ASF+SDF Meta-environment: A Component-Based Language Development Environment
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Tool support for refactoring functional programs
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Programs Are Abstract Data Types
Proceedings of the 16th IEEE international conference on Automated software engineering
Incremental execution of transformation specifications
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiler Optimization Correctness by Temporal Logic
Higher-Order and Symbolic Computation
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 4th international conference on Aspect-oriented software development
Architectural modifications to deployed software
Science of Computer Programming
Stratego/XT 0.16: components for transformation systems
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
A generic recursion toolbox for Haskell or: scrap your boilerplate systematically
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Scrap your boilerplate with XPath-like combinators
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A transformational perspective into the core of an abstract class loader for the SSP
ACM Transactions on Embedded Computing Systems (TECS)
Program Transformation with Scoped Dynamic Rewrite Rules
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Model-driven Transformation-based Generation of Java Stress Tests
Electronic Notes in Theoretical Computer Science (ENTCS)
An update calculus for expressing type-safe program updates
Science of Computer Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Generative programming techniques for Java library migration
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Electronic Notes in Theoretical Computer Science (ENTCS)
Regular Strategies as Proof Tactics for CIRC
Electronic Notes in Theoretical Computer Science (ENTCS)
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
Specifying Strategies for Exercises
Proceedings of the 9th AISC international conference, the 15th Calculemas symposium, and the 7th international MKM conference on Intelligent Computer Mathematics
Electronic Notes in Theoretical Computer Science (ENTCS)
WebDSL: A Case Study in Domain-Specific Language Engineering
Generative and Transformational Techniques in Software Engineering II
Equality saturation: a new approach to optimization
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program transformations using temporal logic side conditions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Electronic Notes in Theoretical Computer Science (ENTCS)
Decorated Attribute Grammars: Attribute Evaluation Meets Strategic Programming
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A higher-order strategy for eliminating common subexpressions
Computer Languages, Systems and Structures
Strategy-Based Proof Calculus for Membrane Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Language-Independent Quantification and Weaving for Feature Composition
SC '09 Proceedings of the 8th International Conference on Software Composition
LEESA: Embedding Strategic and XPath-Like Object Structure Traversals in C++
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
A Haskell Hosted DSL for Writing Transformation Systems
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Scrap your boilerplate: prologically!
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
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
Experience with SC: transformation-based implementation of various extensions to C
Proceedings of the 2007 International Lisp Conference
Programming Errors in Traversal Programs Over Structured Data
Electronic Notes in Theoretical Computer Science (ENTCS)
Enhancing source-level programming tools with an awareness of transparent program transformations
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Language embedding and optimization in mython
DLS '09 Proceedings of the 5th symposium on Dynamic languages
TomML: A Rule Language for Structured Data
RuleML '09 Proceedings of the 2009 International Symposium on Rule Interchange and Applications
A survey of strategies in rule-based program transformation systems
Journal of Symbolic Computation
Tom: piggybacking rewriting on java
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
The spoofax language workbench: rules for declarative specification of languages and IDEs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Static consistency checking of web applications with WebDSL
Journal of Symbolic Computation
Towards an appropriate software refactoring tool support
ACS'09 Proceedings of the 9th WSEAS international conference on Applied computer science
More precise typing of rewrite strategies
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
MKM'11 Proceedings of the 18th Calculemus and 10th international conference on Intelligent computer mathematics
Expressing control mechanisms of membranes by rewriting strategies
WMC'06 Proceedings of the 7th international conference on Membrane Computing
CC'05 Proceedings of the 14th international conference on Compiler Construction
Applications of the ASF+SDF meta-environment
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Program transformation using HATS 1.84
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
A framework for formal verification of compiler optimizations
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
The HERMIT in the machine: a plugin for the interactive transformation of GHC core language programs
Proceedings of the 2012 Haskell Symposium
Program Transformation with Scoped Dynamic Rewrite Rules
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Modular and automated type-soundness verification for language extensions
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
A pure embedding of attribute grammars
Science of Computer Programming
Programming errors in traversal programs over structured data
Science of Computer Programming
A framework for extensible languages
Proceedings of the 12th international conference on Generative programming: concepts & experiences
A framework for extensible languages
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
We describe a language for defining term rewriting strategies, and its application to the production of program optimizers. Valid transformations on program terms can be described by a set of rewrite rules; rewriting strategies are used to describe when and how the various rules should be applied in order to obtain the desired optimization effects. Separating rules from strategies in this fashion makes it easier to reason about the behavior of the optimizer as a whole, compared to traditional monolithic optimizer implementations. We illustrate the expressiveness of our language by using it to describe a simple optimizer for an ML-like intermediate representation.The basic strategy language uses operators such as sequential composition, choice, and recursion to build transformers from a set of labeled unconditional rewrite rules. We also define an extended language in which the side-conditions and contextual rules that arise in realistic optimizer specifications can themselves be expressed as strategy-driven rewrites. We show that the features of the basic and extended languages can be expressed by breaking down the rewrite rules into their primitive building blocks, namely matching and building terms in variable binding environments. This gives us a low-level core language which has a clear semantics, can be implemented straightforwardly and can itself be optimized. The current implementation generates C code from a strategy specification.