15
Lecture Notes in Computer Science 7920 Commenced Publication in 1973 Founding and Former Series Editors: Gerhard Goos, Juris Hartmanis, and Jan van Leeuwen Editorial Board David Hutchison Lancaster University, UK Takeo Kanade Carnegie Mellon University, Pittsburgh, PA, USA Josef Kittler University of Surrey, Guildford, UK Jon M. Kleinberg Cornell University, Ithaca, NY, USA Alfred Kobsa University of California, Irvine, CA, USA Friedemann Mattern ETH Zurich, Switzerland John C. Mitchell Stanford University, CA, USA Moni Naor Weizmann Institute of Science, Rehovot, Israel Oscar Nierstrasz University of Bern, Switzerland C. Pandu Rangan Indian Institute of Technology, Madras, India Bernhard Steffen TU Dortmund University, Germany Madhu Sudan Microsoft Research, Cambridge, MA, USA Demetri Terzopoulos University of California, Los Angeles, CA, USA Doug Tygar University of California, Berkeley, CA, USA Gerhard Weikum Max Planck Institute for Informatics, Saarbruecken, Germany

Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Lecture Notes in Computer Science 7920Commenced Publication in 1973Founding and Former Series Editors:Gerhard Goos, Juris Hartmanis, and Jan van Leeuwen

Editorial Board

David HutchisonLancaster University, UK

Takeo KanadeCarnegie Mellon University, Pittsburgh, PA, USA

Josef KittlerUniversity of Surrey, Guildford, UK

Jon M. KleinbergCornell University, Ithaca, NY, USA

Alfred KobsaUniversity of California, Irvine, CA, USA

Friedemann MatternETH Zurich, Switzerland

John C. MitchellStanford University, CA, USA

Moni NaorWeizmann Institute of Science, Rehovot, Israel

Oscar NierstraszUniversity of Bern, Switzerland

C. Pandu RanganIndian Institute of Technology, Madras, India

Bernhard SteffenTU Dortmund University, Germany

Madhu SudanMicrosoft Research, Cambridge, MA, USA

Demetri TerzopoulosUniversity of California, Los Angeles, CA, USA

Doug TygarUniversity of California, Berkeley, CA, USA

Gerhard WeikumMax Planck Institute for Informatics, Saarbruecken, Germany

Page 2: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Giuseppe Castagna (Ed.)

ECOOP 2013 –Object-OrientedProgramming27th European ConferenceMontpellier, France, July 1-5, 2013Proceedings

13

Page 3: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Volume Editor

Giuseppe CastagnaCNRS, PPS - Université Paris DiderotCase 7014, 75205 Paris Cedex 13, France

ISSN 0302-9743 e-ISSN 1611-3349ISBN 978-3-642-39037-1 e-ISBN 978-3-642-39038-8DOI 10.1007/978-3-642-39038-8Springer Heidelberg Dordrecht London New York

Library of Congress Control Number: 2013940516

CR Subject Classification (1998): D.1.5, D.1-3, F.3, C.2, F.4, J.1

LNCS Sublibrary: SL 2 – Programming and Software Engineering

© Springer-Verlag Berlin Heidelberg 2013This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part ofthe material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,broadcasting, reproduction on microfilms or in any other physical way, and transmission or informationstorage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodologynow known or hereafter developed. Exempted from this legal reservation are brief excerpts in connectionwith reviews or scholarly analysis or material supplied specifically for the purpose of being entered andexecuted on a computer system, for exclusive use by the purchaser of the work. Duplication of this publicationor parts thereof is permitted only under the provisions of the Copyright Law of the Publisher’s location,in its current version, and permission for use must always be obtained from Springer. Permissions for usemay be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecutionunder the respective Copyright Law.The use of general descriptive names, registered names, trademarks, service marks, etc. in this publicationdoes not imply, even in the absence of a specific statement, that such names are exempt from the relevantprotective laws and regulations and therefore free for general use.While the advice and information in this book are believed to be true and accurate at the date of publication,neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors oromissions that may be made. The publisher makes no warranty, express or implied, with respect to thematerial contained herein.

Typesetting: Camera-ready by author, data conversion by Scientific Publishing Services, Chennai, India

Printed on acid-free paper

Springer is part of Springer Science+Business Media (www.springer.com)

Page 4: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Preface

This volume contains 29 articles selected among 116 submissions. Each submis-sion was initially allocated to at least three Program Committee members—mostsubmissions were allocated more. In all, 436 review reports were produced—someof which contained multiple reports from distinct reviewers—including reviewscontributed by 124 external reviewers. The selection process was organized in sixphases as described in Section 3 of the handbook that you can find at the endof this volume. In particular, these phases included a rebuttal phase in whichauthors had the opportunity to respond to reviews, and a Program Commit-tee meeting that took place in Paris and settled the final program. Of the 116submissions, 12 were coauthored by members of the Program Committee andunderwent a different and stricter selection process described in Section 4 ofthe handbook: They were assigned at least five Program Committee members;they were discussed on line between the rebuttal phase and Program Committeemeeting; they had to satisfy higher acceptance criteria and the decision aboutthem was taken before the Program Committee meeting so as to ensure thatacceptance for these article was established in absolute terms and not relative toother submissions. At the end of the process, four of the 12 initial submissionswere accepted.

The detailed organization of the whole selection process is described in thehandbook that can be found at the end of the volume.

Of the 29 contributions in this volume, two received an award. The Pro-gram Committe granted the Best Paper Award to “RedCard: Redundant CheckElimination for Dynamic Race Detectors” by Cormac Flanagan and Stephen N.Freund. The Artifact Evaluation Committee granted the Distinguished ArtifactAward to “QUIC Graphs: Relational Invariant Generation for Containers” byArlen Cox, Bor-Yuh Evan Chang, and Sriram Sankaranarayanan.

The final program included three keynote talks: one by Matthew Parkinson,winner of the 2013 Dahl-Nygaard Junior Award; a second by Oscar Nierstrasz,winner of the 2013 Dahl-Nygaard Senior Award; the third keynote talk was givenby Pat Hanrahan, who was invited by the Program Committee. The abstractsof these talks are included at the beginning of this volume.

As a personal note, it was a real honor and privilege for me to chair thiscommittee. The Program Committee members worked hard to produce qualityreviews and to provide as much feedback as possible to the authors. Thanks tothem the selection process was smooth, pleasant, and carried out in good cheer,and I am sincerely grateful to all of them.

April 2013 Giuseppe Castagna

Page 5: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Organization

ECOOP 2013 was organized by the Laboratoire d’Informatique, de Robotiqueet de Microélectronique de Montpellier (LIRMM), the Centre National de laRecherche Scientifique (CNRS), and the Université Montpellier 2, with the col-laboration of the Université Paris Diderot, under the auspices of AITO (Associ-ation Internationale pour les Technologies Objets) and in association with ACMSIGPLAN and ACM SIGSOFT.

Conference Chair

Marianne Huchard Université Montpellier 2, France

Program Chair

Giuseppe Castagna CNRS, Université Paris Diderot, France

Program Committee

Davide Ancona Università di Genova, ItalyParis Avgeriou University of Groningen, The NetherlandsAlexandre Bergel University of Chile, ChileGavin Bierman Microsoft Research, UKKenneth P. Birman Cornell University, USAJohn Boyland University of Wisconsin, USAPerry S. Cheng IBM Research, USA

Page 6: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

VIII Organization

Pierre Cointe École des Mines de Nantes, FranceTheo D’Hondt Vrije Universiteit Brussel, BelgiumMariangiola Dezani Università di Torino, ItalyDanny Dig University of Illinois, USASophia Drossopoulou Imperial College London, UKRoland Ducournau Université Montpellier 2, FranceMatthew B. Dwyer University of Nebraska, USAErik Ernst Aarhus University, DenmarkMartin Gaedke Chemnitz University of Technology, GermanyYossi Gil Technion - Israel Institute of Technology, IsraelArjun Guha Cornell University, USAPhilipp Haller Typesafe, SwitzerlandRobert Hirschfeld Hasso-Plattner-Institut, GermanyDoug Lea State University of New York, USARustan Leino Microsoft Research, USABen Livshits Microsoft Research, USAKlaus Ostermann University of Marburg, GermanyJens Palsberg University of California at Los Angeles, USAFrank Piessens Katholieke Universiteit Leuven, BelgiumBran Selic Malina Software Corp., CanadaFrank Tip University of Waterloo, CanadaLaurence Tratt King’s College London, UKJan Vitek Purdue University, USAAdam Welc Oracle Labs, USA

Organization Chairs

Roland Ducournauand Christophe Dony Université Montpellier 2, France

Workshop Chairs

Olivier Zendra INRIA Nancy, FranceReda Bendraou Université Pierre et Marie Curie, FranceDamien Cassou Université Lille 1, FranceStéphane Ducasse INRIA Lille, FranceThierry Monteil INSA Toulouse, France

Tutorial Chairs

Naouel Moha Université du Québec à Montréal, CanadaJean Privat Université du Québec à Montréal, CanadaGergely Varró Technische Universität Darmstadt, Germany

Page 7: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Organization IX

Artifact Evaluation Chairs

Erik Ernst Aarhus University, DenmarkShriram Krishnamurthi Brown University, USAJan Vitek Purdue University, USA

Doctoral Symposium Chairs

Mireille Blay-Fornarinoand Philippe Collet Université de Nice, France

Research Project Symposium Chair

Isabelle Borne Universié de Bretagne Sud, FranceIleana Ober Universié de Toulouse, France

Poster and Demo Chairs

Houari Sahraoui Université de Montréal, CanadaBernard Carré Université de Lille, FranceHarald Störrle DTU Informatics, Denmark

Summer School Chairs

James Noble Victoria University of Wellington, New ZealandJan Vitek Purdue University, USA

Proceedings Chair

Kim Nguyên Université Paris-Sud, France

Web Chairs

Chouki Tibermacineand Clémentine Nebut Université Montpellier 2, France

Social Events Chairs

Clémentine Nebut andChouki Tibermacine Université Montpellier 2, France

Page 8: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

X Organization

Sponsorship and Industrial Relationships Chairs

Jean-Paul Rigault Université de Nice, FranceAbdelhak-Djamel Seriai Université Montpellier 2, France

Student Volunteers Chairs

Jannik Laval École des Mines de Douai, FranceFloréal Morandat Université de Bordeaux, FrancePetr Spacek Université Montpellier 2, France

Local Organization Chairs

Elisabeth Grèverie andJustine Landais Université Montpellier 2, France

Sponsors

Golden

Silver

Bronze

Institutional

Page 9: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Organization XI

External Reviewers

Pieter AgtenLeila AmgoudMalte AppeltauerStephanie BalzerVéronique BenzakenLorenzo BettiniRobert BocchinoRobert L. BocchinoElisa Gonzalez BoixCarl Friedrich BolzViviana BonoJohannes BorgströmCaius BrindescuAndoni Lombide

CarretonCalin CascavalPierre CasertaIlaria CastellaniNicholas ChenLaurent ChristopheOlexiy ChudnovskyySylvan ClebschMihai CodobanMyra CohenCharles ConselWillem De GroefBenjamin DelawareAntoine Delignat-LavaudDominique DevrieseWerner DietlIsil DilligGeorges DupéronLaura Effinger-DeanPatrick EugsterTim FelgentreffJerome FeretBruno De FrainePaolo G. GiarrussoKathryn GrayYann-Gaël GuéhéneucRachid GuerraouiDries HarnieSebastian Heil

Stephen HeumannHamidah IbrahimBart JacobsClaude JardAlan JeffreyMalinda KapurugeChristian KästnerAndrew KennedyWilliam KnottenbeltNeelakantan

KrishnaswamiIzuru KumeGiovanni LagorioChoonghwan LeeBenjamin LernerYu LinJens LinckeYuheng LongDavid H. LorenzQingzhou LuoSergio MaffeisHaohui MaiGeoffrey MainlandJacques MalenfantClaude MarchéStefan MarrViviana MascardiAndrew McVeighWolfgang De MeuterTommi MikkonenHeather MillerFloréal MorandatJan-Tobias MuehlbergClémentine NebutJens NicolayNick NikiforakisJames NobleJacques NoyéSemih OkurTobias PapeMatthew ParkinsonDavid J. PearceMichael Perscheid

Laure PhilipsPascal PonceletMichael PradelPolyvios PratikakisJean PrivatAleksandar ProkopecCosmin RadoiThierry RenauxTillmann RendelGregor RichardsClaudio RussoJuan Pablo Sandoval

AlcocerMax SchaeferLionel SeinturierPeter SewellJan SmansManu SridharanBastian SteinertReinout StevensChao SunNicolas TabareauMarcel TaeumelEwan TemperoAbideen TetlayFrancesco TiezziDan TofanOmer TrippAaron TuronGias UddinVeronica UquillasMohsen VakilianYves VandriesscheDries VanoverbergheFrederic VogelsDimitrios VytiniotisTim WoodOlivier ZendraCheng ZhangJianjun ZhaoElena Zucca

Page 10: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Co-specialization of Hardware and Software

Pat Hanrahan

Stanford University, USA

Abstract. Hardware is becoming increasingly specialized because of theneed for power efficiency. One way to gain efficiency is to use throughput-oriented processors (e.g. GPUs) optimized for data-parallel applications;these processors deliver more gigaflops per watt than CPUs optimizedfor single-threaded programs. On mobile and embedded platforms, wherebatteries limit the available energy, systems-on-a-chip contain multipleprocessors along with many specialized hardware units. Since most ap-plications perform many different types of computations, the optimalplatform will contain a heterogenous mixture of different types of pro-cessing elements.

As the hardware has become more diverse, so have the programmingmodels. This is because the low-level programming models reflect theunderlying hardware abstractions. Unfortunately, the diversity in pro-gramming models makes it challenging for software developers to useemerging hardware platforms.

The classic method for writing portable programs is to use a general-purpose programming language and an optimizing compiler. Unfortu-nately, current compilers are not powerful enough for todays platforms.Programs written for one class of machines will not run efficiently onanother class of machines.

My thesis is that the only practical method for writing programs forheterogeneous machines is to raise the level of the programming model.In particular, I advocate the use of domain-specific languages (DSLs).I will present the case for using DSLs, show how DSLs can cope withdiverse hardware, and outline several areas of programming languageresearch that may lead to better methods for building DSLs. Given thetrend towards specialized hardware, it seems natural to co-specialize thesoftware.

Page 11: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

I Object, orHow I Learned to Stop Worrying and Love OOP

Oscar Nierstrasz

Software Composition Group, University of Bern, Switzerlandhttp://scg.unibe.ch/

Abstract. Object-oriented programming was conceived over 50 yearsago, and has consistently proved its value in the construction of com-plex software systems since the 1980s. Nevertheless, the sentiment that“objects are not enough” is often repeated, and object-oriented program-ming is commonly bashed by respected computer scientists. We claimthat OOP is commonly misunderstood. I describe a personal quest formaintainable software with the help of objects during a period of over30 years, and argue that we still need to embrace objects if we are torealize the benefits of OOP.

Page 12: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Views on Concurrency Verification

Matthew Parkinson

Microsoft Research

Compositional abstractions underly many reasoning principles for concurrentprograms: the concurrent environment is abstracted in order to reason abouta thread in isolation; and these abstractions are composed to reason about aprogram consisting of many threads. For instance, separation logic uses formulaethat describe part of the state, abstracting the rest; when two threads use disjointstate, their specifications can be composed with the separating conjunction. Typesystems abstract the state to the types of variables; threads may be composedwhen they agree on the types of shared variables.

In this talk, I will present the “Concurrent Views Framework” [1], a metathe-ory of concurrent reasoning principles. The theory is parameterised by an ab-straction of state with a notion of composition, which we call views. The metathe-ory is remarkably simple, but highly applicable: the rely-guarantee method, con-current separation logic, concurrent abstract predicates, type systems for recur-sive references and for unique pointers, and even an adaptation of the Owicki-Gries method can all be seen as instances of the Concurrent Views Framework.Moreover, our metatheory proves each of these systems is sound without requir-ing induction on the operational semantics.

Reference

1. Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M., Yang, H.: Views:Compositional Reasoning for Concurrent Programs. In: Proceedings of POPL (2013)

Page 13: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Table of Contents

Aspects, Components, and Modularity

CoCo: Sound and Adaptive Replacement of Java Collections . . . . . . . . . . . 1Guoqing Xu

Feature-Oriented Programming with Object Algebras . . . . . . . . . . . . . . . . . 27Bruno C.d.S. Oliveira, Tijs van der Storm, Alex Loh, andWilliam R. Cook

Composition and Reuse with Compiled Domain-Specific Languages . . . . . 52Arvind K. Sujeeth, Tiark Rompf, Kevin J. Brown, HyoukJoong Lee,Hassan Chafi, Victoria Popic, Michael Wu, Aleksandar Prokopec,Vojin Jovanovic, Martin Odersky, and Kunle Olukotun

Types

Combining Form and Function: Static Types for JQuery Programs . . . . . 79Benjamin S. Lerner, Liam Elberty, Jincheng Li, andShriram Krishnamurthi

Heap Decomposition Inference with Linear Programming . . . . . . . . . . . . . 104Haitao Steve Zhu and Yu David Liu

A Formal Semantics for Isorecursive and Equirecursive StateAbstractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Alexander J. Summers and Sophia Drossopoulou

Language Design

Trustworthy Proxies: Virtualizing Objects with Invariants . . . . . . . . . . . . . 154Tom Van Cutsem and Mark S. Miller

JavaUI: Effects for Controlling UI Object Access . . . . . . . . . . . . . . . . . . . . . . 179Colin S. Gordon, Werner Dietl, Michael D. Ernst, andDan Grossman

The Billion-Dollar Fix: Safe Modular Circular Initialisationwith Placeholders and Placeholder Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

Marco Servetto, Julian Mackay, Alex Potanin, and James Noble

Page 14: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

XX Table of Contents

Concurrency, Parallelism, and Distribution

Implementing Federated Object Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230Tobias Freudenreich, Patrick Eugster, Sebastian Frischbier,Stefan Appel, and Alejandro Buchmann

RedCard: Redundant Check Elimination for Dynamic RaceDetectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

Cormac Flanagan and Stephen N. Freund

Ownership-Based Isolation for Concurrent Actors on Multi-coreMachines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

Olivier Gruber and Fabienne Boyer

Why Do Scala Developers Mix the Actor Model with other ConcurrencyModels? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

Samira Tasharofi, Peter Dinges, and Ralph E. Johnson

Analysis and Verification 1

Joins: A Case Study in Modular Specification of a ConcurrentReentrant Higher-Order Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

Kasper Svendsen, Lars Birkedal, and Matthew Parkinson

Enabling Modularity and Re-use in Dynamic Program Analysis Toolsfor the Java Virtual Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352

Danilo Ansaloni, Stephen Kell, Yudi Zheng, Lubomír Bulej,Walter Binder, and Petr Tůma

Averroes: Whole-Program Analysis without the Whole Program . . . . . . 378Karim Ali and Ondřej Lhoták

Analysis and Verification 2

QUIC Graphs: Relational Invariant Generation for Containers . . . . . . . . . 401Arlen Cox, Bor-Yuh Evan Chang, and Sriram Sankaranarayanan

Reducing Lookups for Invariant Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . 426Jakob G. Thomsen, Christian Clausen, Kristoffer J. Andersen,John Danaher, and Erik Ernst

Verification Condition Generation for Permission Logics with AbstractPredicates and Abstraction Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

Stefan Heule, Ioannis T. Kassios, Peter Müller, andAlexander J. Summers

Page 15: Lecture Notes in Computer Science 79203A978-3... · Volume Editor Giuseppe Castagna CNRS, PPS - Université Paris Diderot Case 7014, 75205 Paris Cedex 13, France ISSN 0302-9743 e-ISSN

Table of Contents XXI

Modelling and Refactoring

Really Automatic Scalable Object-Oriented Reengineering . . . . . . . . . . . . 477Marco Trudel, Carlo A. Furia, Martin Nordio, and Bertrand Meyer

Detecting Refactored Clones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502Mati Shomrat and Yishai A. Feldman

A Compositional Paradigm of Automating Refactorings . . . . . . . . . . . . . . . 527Mohsen Vakilian, Nicholas Chen, Roshanak Zilouchian Moghaddam,Stas Negara, and Ralph E. Johnson

A Comparative Study of Manual and Automated Refactorings . . . . . . . . . 552Stas Negara, Nicholas Chen, Mohsen Vakilian,Ralph E. Johnson, and Danny Dig

Testing, Profiling, and Empirical Studies

What Programmers Do with Inheritance in Java . . . . . . . . . . . . . . . . . . . . . 577Ewan Tempero, Hong Yul Yang, and James Noble

Is This a Bug or an Obsolete Test? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602Dan Hao, Tian Lan, Hongyu Zhang, Chao Guo, and Lu Zhang

Systematic Testing of Refactoring Engines on Real Software Projects . . . 629Milos Gligoric, Farnaz Behrang, Yilong Li, Jeffrey Overbey,Munawar Hafiz, and Darko Marinov

Implementation

Simple Profile Rectifications Go a Long Way—Statistically Exploringand Alleviating the Effects of Sampling Errors for ProgramOptimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654

Bo Wu, Mingzhou Zhou, Xipeng Shen, Yaoqing Gao,Raul Silvera, and Graham Yiu

The Shape of Things to Run: Compiling Complex Stream Graphsto Reconfigurable Hardware in Lime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679

Josh Auerbach, David F. Bacon, Perry Cheng, Steve Fink, andRodric Rabbah

Higher-Order Reactive Programming with Incremental Lists . . . . . . . . . . . 707Ingo Maier and Martin Odersky

Author Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733