ABSTRACT
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.
- O. S. Bagge, K. T. Kalleberg, M. Haveraaen, and E. Visser. Design of the CodeBoost transformation system for domain-specific optimisation of C++ programs. In D. Binkley and P. Tonella, editors, 3rd IEEE Itl Workshop on Source Code Analysis and Manipulation (SCAM'03), pages 65--74, Amsterdam, The Netherlands, Sep 2003. IEEE Comp. Soc. Press.]]Google Scholar
- M. G. J. van den Brand, H. de Jong, P. Klint, and P. Olivier. Efficient annotated terms. Software, Practice & Experience, 30(3):259--291, 2000.]] Google ScholarDigital Library
- M. Bravenboer, R. de Groot, and E. Visser. Metaborg in action: Examples of domain-specific language embedding and assimilation using. Stratego/XT. In Proceedings of the Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE'05), Braga, Portugal, July 2005.]] Google ScholarDigital Library
- M. Bravenboer, A. van Dam, K. Olmos, and E. Visser. Program transformation with scoped dynamic rewrite rules. Fundamenta Informaticae, 69:1--56, 2005.]] Google ScholarDigital Library
- M. Bravenboer, R. Vermaas, J. Vinju, and E. Visser. Generalized type-based disambiguation of meta programs with concrete object syntax. In R. Glück and M. Lowry, editors, Proc. of Fourth Itl Conference on Generative Programming and Component Engineering (GPCE'05), volume 3676 of LNCS, pages 157--172, Tallin, Estonia, Sep 2005. Springer.]] Google ScholarDigital Library
- M. Bravenboer and E. Visser. Rewriting strategies for instruction selection. In S. Tison, editor, Rewriting Techniques and Applications (RTA'02), volume 2378 of LNCS, pages 237--251, Copenhagen, Denmark, July 2002. Springer.]] Google ScholarDigital Library
- M. Bravenboer and E. Visser. Concrete syntax for objects. Domain-specific language embedding and assimilation without restrictions. In D. C. Schmidt, editor, Proc. the 19th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA'04), pages 365--383, Vancouver, Canada, October 2004. ACM Press.]] Google ScholarDigital Library
- M. de Jonge. A pretty-printer for every occasion. In I. Ferguson, J. Gray, and L. Scott, editors, Proceedings of the 2nd International Symposium on Constructing Software Engineering Tools (CoSET2000). University of Wollongong, Australia, 2000.]] Google ScholarDigital Library
- B. Fischer and E. Visser. Retrofitting the AutoBayes program synthesis system with concrete object syntax. In C. Lengauer et al., editors, Domain-Specific Program Generation, volume 3016 of LNCS, pages 239--253. Spinger-Verlag, 2004.]]Google Scholar
- M. de Jonge, E. Visser, and J. Visser. XT: A bundle of program transformation tools. In M. G. J. van den Brand and D. Perigot, editors, Workshop on Language Descriptions, Tools and Applications (LDTA'01), volume 44 of ENTCS. Elsevier, April 2001.]]Google Scholar
- K. T, Kalleberg, www.spoofax.org.]]Google Scholar
- K. T. Kalleberg and E. Visser. Combining aspect-oriented and strategic programming. In N. M.-O. Horatiu Cirstea, editor, Proceedings of the 6th International Workshop of Rule-Based Programming (RULE), ENTCS, Nara, Japan, April 2005. Elsevier.]]Google Scholar
- K. Olmos and E. Visser. Turning dynamic typing into static typing by program specialization. In D. Binkley and P. Tonella, editors, Third IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'03), pages 141--150, Amsterdam, The Netherlands, September 2003. IEEE Computer Society Press.]]Google ScholarCross Ref
- K. Olmos and E. Visser. Composing source-to-source data-flow transformations with rewriting strategies and dependent dynamic rewrite rules. In R. Bodik, editor, 14th International Conference on Compiler Construction (CC'05), volume 3443 of LNCS, pages 204--220. Springer-Verlag, April 2005.]] Google ScholarDigital Library
- E. Visser. Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam, September 1997.]]Google Scholar
- E. Visser. Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5. In A. Middeldorp, editor, Rewriting Techniques and Applications (RTA'01), volume 2051 of LNCS, pages 357--361. Springer, May 2001.]] Google ScholarDigital Library
- E. Visser. Meta-programming with concrete object syntax. In D. Batory, C. Consel, and W. Taha, editors, Generative Programming and Component Engineering (GPCE'02), volume 2487 of LNCS, pages 299--315, Pittsburgh, PA, USA, October 2002. Springer-Verlag.]] Google ScholarDigital Library
- E. Visser. Program transformation with Stratego/XT: Rules, strategies, tools, and systems in StrategoXT-0.9. In C. Lengauer et al., editors, Domain-Specific Program Generation, volume 3016 of LNCS, pages 216--238. Spinger-Verlag, June 2004.]]Google Scholar
- E. Visser. A survey of strategies in rule-based program transformation systems, J. Sym. Comp., 40(1):831--873, 2005. Special issue on Reduction Strategies in Rewriting and Programming.]] Google ScholarDigital Library
- E. Visser, Z.-e.-A. Benaissa, and A. Tolmach. Building program optimizers with rewriting strategies. In Proceedings of the third ACM SIGPLAN International Conference on Functional Programming (ICFP'98), pages 13--26. ACM Press, September 1998.]] Google ScholarDigital Library
- E. Visser et al. www.stratego-language.org.]]Google Scholar
- D. G. Waddington and B. Yao. High fidelity C++ code transformation. In Proceedings of the 5th workshop on Language Descriptions, Tools and Applications, ENTCS. Elsevier, April 2005.]] Google ScholarDigital Library
Index Terms
- Stratego/XT 0.16: components for transformation systems
Recommendations
Stratego/XT 0.17. A language and toolset for program transformation
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 ...
Integrated language definition testing: enabling test-driven language development
OOPSLA '11The reliability of compilers, interpreters, and development environments for programming languages is essential for effective software development and maintenance. They are often tested only as an afterthought. Languages with a smaller scope, such as ...
Integrated language definition testing: enabling test-driven language development
OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applicationsThe reliability of compilers, interpreters, and development environments for programming languages is essential for effective software development and maintenance. They are often tested only as an afterthought. Languages with a smaller scope, such as ...
Comments