Subject: PEM Talks Frank Tip, Friday 12 June 2009 From: "H.J.S. Basten" To: pem-list, sen-list Date: Mon, 08 Jun 2009 16:03:22 +0200 Dear all, You are hereby cordially invited for our next PEM talks on Friday 12 June 2009. We are very pleased to introduce Frank Tip, who is visiting us from IBM Research. He will give the following two talks: [skip] 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. Best regards, Bas Basten Subject: PEM Talks by Frank Tip, Friday 12 June 2009, *subject changed* From: "H.J.S. Basten" To: pem-list, sen-list Date: Wed, 10 Jun 2009 16:37:14 +0200 Dear all, The subject of the second talk by Frank Tip is changed into "Declarative Object Identity using Relation Types". See the updated invitation below: Dear all, You are hereby cordially invited for our next PEM talks on Friday 12 June 2009. We are very pleased to introduce 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. Declarative Object Identity using Relation Types (joint work with Mandana Vaziri, Julian Dolby, and Stephen Fink) Object-oriented languages define the identity of an object to be an address-based object identifier. The programmer may customize the notion of object identity by overriding the equals() and hashCode() methods following a specified contract. This customization often introduces latent errors, since the contract is unenforced and at times impossible to satisfy, and its implementation requires tedious and error-prone boilerplate code. Relation types are a programming model in which object identity is defined declaratively, obviating the need for equals() and hashCode() methods. This entails a stricter contract: identity never changes during an execution. We formalize the model as an adaptation of Featherweight Java, and implement it by extending Java with relation types. Experiments on a set of Java programs show that the majority of classes that override equals() can be refactored into relation types, and that most of the remainder are buggy or fragile. 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. Best regards, Bas Basten