School of Computing

A User-extensible Refactoring Tool for Erlang Programs

Huiqing Li and Simon Thompson

Technical Report 4-11, University of Kent, October 2011.


Refactoring is the process of changing the design of a program without changing what it does. While it is possible to refactor a program by hand, tool support is considered invaluable as it allows large-scale refactorings to be performed easily. However, most refactoring tools are black boxes, supporting a fixed set of `core' refactorings.

This paper reports the framework built into Wrangler -- a refactoring and code inspection tool for Erlang programs -- that allows users to define for themselves refactorings and code inspection functions that suit their needs. These are defined using a template- and rule-based program transformation and analysis API. User-defined refactorings are no ``second-class citizens'': like the existing ones supported by Wrangler, user-defined refactorings benefit from features such as results preview, layout preservation, selective refactoring, undo and so on.

Download publication 465 kbytes (PDF)

Bibtex Record

author = {Huiqing Li and Simon Thompson},
title = {A {U}ser-extensible {R}efactoring {T}ool for {E}rlang {P}rograms},
month = {October},
year = {2011},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {},
    publication_type = {techreport},
    submission_id = {6265_1318519600},
    institution = {University of Kent},
    number = {4-11},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014