Personal tools
You are here: Home Projects Refactoring Stepping Stones over the Refactoring Rubicon -- Lightweight Language Extensions to Easily Realise Refactorings
Document Actions

Stepping Stones over the Refactoring Rubicon -- Lightweight Language Extensions to Easily Realise Refactorings

Presented at ECOOP '09.

Authors: Max Schäfer, Mathieu Verbaere, Torbjörn Ekman, Oege de Moor

Abstract

Refactoring tools allow the programmer to pretend they are working with a richer language where the behaviour of a program is automatically preserved during restructuring. In this paper we show that this metaphor of an extended language yields a very general and useful implementation technique for refactorings: a refactoring is implemented by embedding the source program into an extended language on which the refactoring operations are easier to perform, and then translating the refactored program back into the original language. Using the well-known Extract Method refactoring as an example, we show that this approach allows a very fine-grained decomposition of the overall refactoring into a series of micro-refactorings that can be understood, implemented, and tested independently. We thus can easily write implementations of complex refactorings that rival and even outperform industrial strength refactoring tools in terms of correctness, but are much shorter and easier to understand.

(PDF)

BIBTEX:

 @inproceedings{ecoop09refactoring, 
           author = "Max Sch{\"a}fer and
                     Mathieu Verbaere and
                     Torbj{\"o}rn Ekman and
                     Oege de Moor",
           title = {{Stepping Stones over the Refactoring Rubicon -- Lightweight Language Extensions to Easily Realise Refactorings}}, 
           booktitle = "23rd European Conference on Object-Oriented Programming (ECOOP '09)", 
           editor = "Sophia Drossopoulou", 
           year = "2009"} 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: