Omschrijving
PThis book constitutes the refereed proceedings of the 18th European Conference on Object-Oriented Programming, ECOOP 2004, held in Oslo, Norway in June 2004./PPThe 25 revised full papers presented together with the abstracts of 2 invited talks were carefully reviewed and selected from a total of 132 submissions. The papers are organized in topical sections on encapsulation, program analysis, software engineering, aspects, middleware, types, verification, and systems./P ECOOP is the premier forum in Europe for bringing together practitioners, - searchers, and students to share their ideas and experiences in a broad range of disciplines woven with the common thread of object technology. It is a collage of events, including outstanding invited speakers, carefully refereed technical - pers, practitioner reports re?ecting real-world experience, panels, topic-focused workshops, demonstrations, and an interactive posters session. The 18th ECOOP 2004 conference held during June 14¿18, 2004 in Oslo, Norway represented another year of continued success in object-oriented p- gramming, both as a topic of academic study and as a vehicle for industrial software development. Object-oriented technology has come of age; it is now the commonly established method for most software projects. However, an - panding ?eld of applications and new technological challenges provide a strong demand for research in foundations, design and programming methods, as well as implementation techniques. There is also an increasing interest in the in- gration of object-orientation with other software development techniques. We anticipate therefore that object-oriented programming will be a fruitful subject of research for many years to come. Thisyear,theprogramcommitteereceived132submissions,ofwhich25were acceptedforpublicationafterathoroughreviewingprocess.Everypaperreceived atleast4reviews.Paperswereevaluatedbasedonrelevance,signi?cance,clarity, originality, and correctness. The topics covered include: programming concepts, program analysis, software engineering, aspects and components, middleware, veri?cation, systems and implementation techniques. These were complemented by two invited talks, from Matthias Felleisen and Tom Henzinger. Their titles andabstracts are also included in these proceedings. Encapsulation
Ownership Domains: Separating Aliasing Policy from Mechanism
1(25)
Jonathan Aldrich, Craig Chambers
Composable Encapsulation Policies
26(25)
Nathanael Schärli, Stéphane Ducasse, Oscar Nierstrasz, Roel Wuyts
Program Analysis
Demand-Driven Type Inference with Subgoal Pruning: Trading Precision for Scalability
51(24)
S. Alexander Spoon, Olin Shivers
Efficiently Verifiable Escape Analysis
75(21)
Matthew Q. Beers, Christian H. Stork, Michael Franz
Pointer Analysis in the Presence of Dynamic Class Loading
96(27)
Martin Hirzel, Amer Diwan, Michael Hind
Software Engineering
The Expression Problem Revisited (Four New Solutions Using Generics)
123(24)
Mads Torgersen
Rewritable Reference Attributed Grammars
147(25)
Torbjörn Ekman, Görel Hedin
Finding and Removing Performance Bottlenecks in Large Systems
172(25)
Glenn Ammons, Jong-Deok Choi, Manish Gupta, Nikhil Swamy
Aspects
Programming with Crosscutting Effective Views
197(24)
Doug Janzen, Kris De Volder
Aspect J2EE = AOP + J2EE (Towards an Aspect Based, Programmable, and Extensible Middleware Framework)
221(25)
Tal Cohen, Joseph (Yossi) Gil
Use Case Level Pointcuts
246(23)
Jonathan Sillito, Christopher Dutchyn, Andrew David Eisenberg, Kris De Voider
Invited Talk 1
Functional Objects
269(1)
Matthias Felleisen
Middleware
Inheritance-Inspired Interface Versioning for CORBA
270(22)
Skef Iterum, Ralph Campbell
A Middleware Framework for the Persistence and Querying of Java Objects
292(25)
Mourad Alia, Sébastien Chassande-Barrioz, Pascal Déchamboux, Catherine Hamon, Alexandre Lefebvre
Sequential Object Monitors
317(25)
Denis Caromel, Luis Mateu, Eric Tanter
Increasing Concurrency in Databases Using Program Analysis
342(23)
Roman Vitenberg, Kristian Kvilekval, Ambuj K. Singh
Types
Semantic Casts: Contracts and Structural Subtyping in a Nominal World
365(25)
Robert Bruce Findler, Matthew Flatt, Matthias Felleisen
LOOJ: Weaving LOOM into Java
390(25)
Kim B. Bruce, J. Nathan Foster
Modules with Interfaces for Dynamic Linking and Communication
415(25)
Yu David Liu, Scott F. Smith
Verification
Early Identification of Incompatibilities in Multi-component Upgrades
440(25)
Stephen McCamant, Michael D. Ernst
Typestates for Objects
465(26)
Robert DeLine, Manuel Fähndrich
Object Invariants in Dynamic Contexts
491(25)
K. Rustan M. Leino, Peter Müller
Invited Talk 2
Rich Interfaces for Software Modules
516(2)
Thomas A. Henzinger
Systems
Transactional Monitors for Concurrent Objects
518(24)
Adam Welc, Suresh Jagannathan, Antony L. Hosking
Adaptive Tuning of Reserved Space in an Appel Collector
542(17)
José Manuel Velasco, Katzalin Olcoz, Francisco Tirado
Lock Reservation for Java Reconsidered
559(25)
Tamiya Onodera, Kikyokuni Kawachiya, Akira Koseki
Customization of Java Library Classes Using Type Constraints and Profile Information
584(25)
Bjorn De Sutter, Frank Tip, Julian Dolby
Author Index
609