StrategoXT encourages a development model in which stand-alone components are developed for separate aspects of program transformation, instead of implementing integrated monolithic transformation systems. A typical component reads a program represented by means of an ATerm, transforms it, and writes out a transformed ATerm. The advantage of this approach is that the components can be reused in different transformation systems.
The composition mechanisms used to date include makefiles, shell scripts, and Stratego programs.
The problem with the approach is keeping track of all available components and their installation locations. As a consequence of making components available in small packages (to increase reusability), compositions need to be parameterized with a large number of installation paths. The
XTC component model and API supports the easy composition of XT components using a repository to keep track of available components.
--
EelcoVisser - 13 Dec 2002