An Invasive Composition System for Local-to-Global Transformations

Transformation systems are particularly well suited to implement modular rules, transforming one language feature of the source language into a single or a composition of language features of the target language. However, in practice, transformation rules must be written which take one language feature and transform them into several language features belonging to various locations in the output program. The implementation of these so-called local-to-global transformations with rewrite rules is very complex and tightly coupled which imposes severe constraints on maintenance and evolvability. The four main coupling problems of the current-day implementations are presented and we indicate how these can be eliminated and reduced by our extension of the rewrite rule system. Furthermore we show how complex invasive compositions can be solved by abstract, reusable algorithms and mechanisms, rendering the implementation of local-to-global transformations into a semi-automatic process.

[1]  James Clark,et al.  XSL Transformations (XSLT) Version 1.0 , 1999 .

[2]  Theo D'Hondt,et al.  On the Evolution of IMEDIA Implementations , 2004, EWIMT.

[3]  Johan Fabry But What if Things go Wrong , 2004 .

[4]  David R. Barstow,et al.  Artificial intelligence and software engineering , 1987, ICSE '87.

[5]  Theo D'Hondt,et al.  Disentangling the implementation of local-to-global transformations in a rewrite rule transformation system , 2005, SAC '05.

[6]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[7]  Eelco Visser,et al.  Stratego: A Language for Program Transformation Based on Rewriting Strategies , 2001, RTA.

[8]  Kevin A. Schneider,et al.  Software engineering by source transformation - experience with TXL , 2001, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation.

[9]  Enrico Gobbetti,et al.  Encyclopedia of Electrical and Electronics Engineering , 1999 .

[10]  Charles Simonyi,et al.  The Death of Computer Languages, The Birth of Intentional Programming , 1995 .

[11]  Charles Simonyi,et al.  Intentional Programming - Innovation in the Legacy Age , 1996 .

[12]  Thomas Cleenewerck Component-Based DSL Development , 2003, GPCE.

[13]  Paul Klint,et al.  Term rewriting with traversal functions , 2003, TSEM.

[14]  James M. Neighbors,et al.  The Draco Approach to Constructing Software from Reusable Components , 1984, IEEE Transactions on Software Engineering.