Distinguished Lecture - Refactoring Using Type Constraints

Location: Torgersen 2150
Date: Friday, February 5, 2016
Time: 11:15AM - 12:30PM
This talk is open to the general public.

Dr. Frank Tip
Samsung Research America


Frank Tip is a Senior Principal Engineer at Samsung Research America in Mountain View, California and an Adjunct Professor at the David R. Cheriton School of Computer Science at the University of Waterloo. Previously, he was a Professor and Cheriton Research Chair in the David R. Cheriton School of Computer Science at the University of Waterloo (2012-2014), and a Research Staff Member and Manager at the Software Technology Department at the IBM T.J. Watson Research Center (1995-2012). He received his PhD in 1995 from the University of Amsterdam. Frank's research interests include: program analysis, refactoring, test generation, fault localization, automated program repair, data-centric synchronization, and analysis of web applications.



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 devised as a convenient framework for solving type checking and type inference problems. Our research 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 the popular Eclipse development environment are based on our work.

(This talk reports joint work with Robert M. Fuhrer, Adam Kiezun, Michael D. Ernst, Ittai Balaban, and Bjorn De Sutter.)