Keywords : Program transformation.
Spoon is an annotation-driven program transformation tool, which is built on SUN's APT (Annotation-Processing Tool) and provides pure Java templates for easy and type-safe transformations. Spoon integrates a framework (based on the visitor pattern) that allows the processing of any kind of Java element, which are reified in a meta-model. Thanks to generics and annotations, it is straightforward for the programmer to define any kind of program processor that is type-safe and that processes a particular program or a particular annotation. A processor can validate a program or transform it. For the program transformations, we are able to introduce a pure Java and type-safe template mechanism to define the transformations (this is possible only with Java 5 generics). This template mechanism is less powerful than the C++ one, but it is fully typed and totally supported by the IDE. As such, it is far easier to use for the programmers. The Spoon sofware is available on the INRIA GForge at http://spoon.gforge.inria.fr .