Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
Giuseppe Castagna (Ed.)
ECOOP 2013 –Object-OrientedProgramming27th European ConferenceMontpellier, France, July 1-5, 2013Proceedings
13
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)
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
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
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
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
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
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
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.
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.
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)
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
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
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