Results 1 -
7 of
7
Stratego/XT 0.16. Components for transformation systems
- In ACM SIGPLAN 2006 Workshop on Partial Evaluation and Program Manipulation (PEPM’06
, 2006
"... Stratego/XT is a language and toolset for program transformation. The Stratego language provides rewrite rules for expressing basic transformations, programmable rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of the o ..."
Abstract
-
Cited by 21 (9 self)
- Add to MetaCart
Stratego/XT is a language and toolset for program transformation. The Stratego language provides rewrite rules for expressing basic transformations, programmable rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of the object language, and dynamic rewrite rules for expressing context-sensitive transformations, thus supporting the development of transformation components at a high level of abstraction. The XT toolset offers a collection of flexible, reusable transformation components, as well as declarative languages for deriving new components. Complete program transformation systems are composed from these components. In this paper we give an overview of Stratego/XT 0.16.
Design of the CodeBoost transformation system for domain-specific optimisation of C++ programs
- Third International Workshop on Source Code Analysis and Manipulation (SCAM 2003
, 2003
"... ..."
Stratego/XT 0.17 -- A Language and Toolset for Program Transformation
- SCIENCE OF COMPUTER PROGRAMMING, SPECIAL ISSUE ON EXPERIMENTAL SYSTEMS AND TOOLS
, 2008
"... ..."
Program Transformation Mechanics: A classification of Mechanisms for Program Transformation with a Survey of Existing Transformation Systems
, 2003
"... Transformation techniques are spreading from application in compilers to general use in generative programming and document processing. ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
Transformation techniques are spreading from application in compilers to general use in generative programming and document processing.
The essence of strategic programming
- Draft
, 2002
"... Abstract. Strategic programming is generic programming with the use of strategies. A strategy is a generic data-processing action which can traverse into heterogeneous data structures while mixing uniform and type-specific behaviour. With strategic programming, one gains full control over the applic ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
Abstract. Strategic programming is generic programming with the use of strategies. A strategy is a generic data-processing action which can traverse into heterogeneous data structures while mixing uniform and type-specific behaviour. With strategic programming, one gains full control over the application of basic actions, most notably full traversal control. Using a combinator style, traversal schemes can be defined, and actual traversals are obtained by passing the problem-specific ingredients as parameters to suitable schemes. The prime application domain for strategic programming is program transformation and analysis. In this paper, we provide a language-independent definition that generalises over existing incarnations of this idiom in term rewriting, functional programming, and object-oriented programming.
Constant Propagation
- Workshop on Reduction Strategies (WRS’02), volume 70 of Electronic Notes in Theoretical Computer Science
, 2002
"... Data-flow optimizations are usually implemented on low-level intermediate representations. This is not appropriate for source-to-source optimizations, which reconstruct a source level program after transformation. In this paper we show how constant propagation, a well known data-flow optimization pr ..."
Abstract
- Add to MetaCart
Data-flow optimizations are usually implemented on low-level intermediate representations. This is not appropriate for source-to-source optimizations, which reconstruct a source level program after transformation. In this paper we show how constant propagation, a well known data-flow optimization problem, can be implemented on abstract syntax trees in Stratego, a rewriting system extended with programmable rewriting strategies for the control over the application of rules and dynamic rewrite rules for the propagation of information.
Inference Rules Plus Proof-Search Strategies Equals Programs
, 2009
"... In the programming-language community many authors communicate algorithms through the use of inference rules. To get from rules to working code requires careful thought and effort. If the rules change or the author wants to use a different algorithm, the effort required to fix the code can be dispro ..."
Abstract
- Add to MetaCart
In the programming-language community many authors communicate algorithms through the use of inference rules. To get from rules to working code requires careful thought and effort. If the rules change or the author wants to use a different algorithm, the effort required to fix the code can be disproportionate to the size of the change in the rules. This thesis shows that it is possible to generate working code automatically from inference rules as they appear in publications. The method of this generation is found in the combination of two domain-specific languages: Ruletex and MonStr. Ruletex formally describes inference rules; MonStr connects the rules to an algorithm. Ruletex descriptions are embedded in LATEX, the language that researchers use to publish their work, so that the author commands complete control of the rules ’ appearance. Moreover the generated code enjoys several nice properties: Existing code written in a general-purpose programming language can interoperate with Ruletex code, correctness of rules is decoupled from performance and termination of code, and implementations are conceptually simple, consisting only of λ-calculus with pattern matching. The main technical contribution of this work is the design of MonStr, the executionstrategy language used to form an algorithm out of rules. MonStr specifications provide an important guarantee: a valid strategy cannot affect partial correctness, although it can affect termination, completeness, and efficiency. iii Contents

