to specify refactorings declaratively, using the constraint approach, and to generate refactoring tools from the specifications
Among all available refactoring tools, constraint-based ones present perhaps the largest fraction relying on a single, uniform approach to refactoring. Despite this uniformity, however, all constraint-based refactoring tools have been developed more or less from scratch, and the potential for reuse, both of the constraint rules covering the target language and of the implementation of the necessary infrastructure, is wasted. Refacola's purpose is to allows refactoring tool developers to write and reuse refactoring specifications in a clompletely declarative constraint language, and to generate refactoring tools from them.
...
Refacola and the refactorings specified with it have been evaluated extensively, for different refactorings and different target programming languages, using the following experimental setup:
We offer downloads of the Refacola language and framework (for Eclipse), Refacola refactoring specifications, and generated refactoring tools.