Refactoring using type constraints

TitleRefactoring using type constraints
Publication TypeJournal Article
Year of Publication2011
AuthorsTip F, Fuhrer RM, Kieżun A, Ernst MD, Balaban I, Sutter B D
JournalACM Transactions on Proġramming Languages and Systems
Volume33
Pagination9:1–9:47
Date or Month PublishedMay
Abstract<p>Type constraints express subtype relationships between the types of program expressions, for example, those relationships that are required for type correctness. Type constraints were originally proposed as a convenient framework for solving type checking and type inference problems. This paper shows how type constraints can be used as the basis for practical refactoring tools. In our approach, a set of type constraints is derived from a type-correct program P\@. The main insight behind our work is the fact that P constitutes just one solution to this constraint system, and that alternative solutions may exist that correspond to refactored versions of P\@. We show how a number of refactorings for manipulating types and class hierarchies can be expressed naturally using type constraints. Several refactorings in the standard distribution of Eclipse are based on our work.</p>
Citation KeyTipFKEBDS2011
Last changed Mon, 2013-06-03 10:27