Type of project:
Master Thesis, December 2009 - May 2010
Mutation Tool for Eiffel Code Transformation
research involving Eiffel there is a frequent need to transform source
code on the level of AST-fragments and process their semantics outside
of the usual compilation cycle.
Previously existing facilities to perform these tasks were only
partially existent, tied to a certain area or very limited. In this
master thesis a new library for EiffelStudio - called EiffelTransform -
has been developed to fill this gap. It provides a flexible way to
specify AST-modifications independently of a specific instance, apply
them and iterate this process in a fully composable way. Additionally a
wide range of tools have been provided along with it; including a way
to pretty print any AST-node without relying on a matchlist and a type
checker that allows to easily evaluate the type of an AST-fragment in
an arbitrary context.
As example applications of the library several new refactorings, such
as constant or method extraction, have been implemented and fully
integrated into EiffelStudio.