se logo Chair of Software Engineering
eth logo


Master Thesis

Type of project:
Master Thesis, December 2009 - May 2010

Stefan Buchholz

Mutation Tool for Eiffel Code Transformation

Supervising Assistant:
Yi Wei


In 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.