PEM Talks
Introduction Frank Tip, who is visiting us from IBM Research.
He will give the following two talks:
1. Refactoring using Type Constraints
(joint work with Robert Fuhrer, Adam Kiezun, Michael Ernst, Ittai Balaban, and Bjorn De Sutter)
Type constraints express subtype-relationships between the types of program expressions that are required for type-correctness, and were originally proposed as a convenient framework for solving type checking and type inference problems. In this paper, we show 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 results.
2. Type-Based Data-Centric Synchronization
(joint work with Mandana Vaziri, Jan Vitek, Julian Dolby)
We previously presented a data-centric approach to synchronization in which fields in classes are grouped into atomic sets to indicate that they must be updated atomically. Each atomic set has associated units of work, code fragments that preserve the consistency of that atomic set when executed sequentially. Based on these annotations, we automatically inferred where to place synchronization, using a whole-program analysis. This use of whole-program analysis precluded separate compilation, thus limiting the practicality of the approach.
This paper improves on our previous work by presenting a type system for data-centric synchronization that enables separate compilation. We also introduce improved support for atomic sets that span multiple objects, enabling the generation of more efficient code for linked data structures.
We evaluate the new approach by extending Java with data-centric synchronization, and manually rewriting several classes from the Java Collections Framework into the resulting language. Our approach combines low annotation overhead with acceptable performance, while enforcing a rigorous correctness criterion that eliminates known
concurrency-related errors.
Date: Friday 12 June 2009
Time: 15:30 - 17:00
Room: M367, CWI
Afterwards we'll visit the nearby cafe-restaurant Polder for some drinks. We're looking forward to your attendence.
Bas Basten,

