- Sponsor:
- sigplan
It's a pleasure to welcome you to OOPSLA 2004, the 19th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications. OOPSLA is the premier forum for practitioners, researchers, and students in diverse disciplines whose common thread is object technology. From its inception, OOPSLA has served as an incubator for advanced technologies and practices. Dynamic compilation and optimization, patterns, refactoring, aspect-oriented programming, and agile methods (to name a few) all have OOPSLA roots.
OOPSLA 2004 continues that tradition. Researchers and practitioners from around the world have come to showcase their latest work. Presentations from invited speakers dovetail with technical papers, practitioner reports, expert panels, demonstrations, formal and informal educational symposia, workshops, and diverse tutorials from world-class lecturers. The popular Onward! track presents out-of-the-box thinking at the forefront of computing. You can discuss late-breaking results with the researchers themselves at poster sessions, which culminate in the Third Annual SIGPLAN Student Research Competition. DesignFest® provides hands-on design experience in an expert-mentored environment.
And again this year, we're privileged to host the ACM Turing Lecture. Alan Kay, Turing laureate for 2003, received the prestigious award "for pioneering many of the ideas at the root of contemporary object-oriented programming languages, leading the team that developed Smalltalk, and for fundamental contributions to personal computing." It's especially fitting that Dr. Kay deliver the Turing Lecture at OOPSLA.
Proceeding Downloads
Converting Java classes to use generics
Generics offer significant software engineering benefits since they provide code reuse without compromising type safety. Thus generics will be added to the Java language in the next release. While this extension to Java will help programmers when they ...
Converting java programs to use generic libraries
Java 1.5 will include a type system (called JSR-14) that supports <i>parametric polymorphism</i>, or <i>generic</i> classes. This will bring many benefits to Java programmers, not least because current Java practice makes heavy use of logically-generic ...
A practical type system and language for reference immutability
This paper describes a type system that is capable of expressing and enforcing immutability constraints. The specific constraint expressed is that the abstract state of the object to which an immutable reference refers cannot be modified using that ...
A unified theory of garbage collection
Tracing and reference counting are uniformly viewed as being fundamentally different approaches to garbage collection that possess very distinct performance properties. We have implemented high-performance collectors of both types, and in the process ...
The garbage collection advantage: improving program locality
As improvements in processor speed continue to outpace improvements in cache and memory speed, poor locality increasingly degrades performance. Because copying garbage collectors move objects, they have an opportunity to improve locality. However, no ...
MC2: high-performance garbage collection for memory-constrained environments
Java is becoming an important platform for memory-constrained consumer devices such as PDAs and cellular phones, because it provides safety and portability. Since Java uses garbage collection, efficient garbage collectors that run in constrained memory ...
Scalable extensibility via nested inheritance
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for building extensible systems. We describe <i>nested inheritance</i>, a mechanism that addresses some of the limitations of ordinary inheritance and other ...
Super and inner: together at last!
In an object-oriented language, a derived class may declare a method with the same signature as a method in the base class. The meaning of the re-declaration depends on the language. Most commonly, the new declaration overrides the base declaration, ...
Object-oriented encapsulation for dynamically typed languages
Encapsulation in object-oriented languages has traditionally been based on static type systems. As a consequence, dynamically-typed languages have only limited support for encapsulation. This is surprising, considering that encapsulation is one of the ...
Measuring the dynamic behaviour of AspectJ programs
This paper proposes and implements a rigorous method for studying the dynamic behaviour of AspectJ programs. As part of this methodology several new metrics specific to AspectJ programs are proposed and tools for collecting the relevant metrics are ...
Decentralizing execution of composite web services
Distributed enterprise applications today are increasingly being built from services available over the web. A unit of functionality in this framework is a web service, a software application that exposes a set of "typed'' connections that can be ...
Resolving feature convolution in middleware systems
Middleware provides simplicity and uniformity for the development of distributed applications. However, the modularity of the architecture of middleware is starting to disintegrate and to become complicated due to the interaction of too many orthogonal ...
Transparent proxies for java futures
A <i>proxy</i> object is a surrogate or placeholder that controls access to another target object. Proxies can be used to support distributed programming, lazy or parallel evaluation, access control, and other simple forms of behavioral reflection. ...
An efficient parallel heap compaction algorithm
We propose a heap compaction algorithm appropriate for modern computing environments. Our algorithm is targeted at SMP platforms. It demonstrates high scalability when running in parallel but is also extremely efficient when running single-threaded on a ...
Finding your cronies: static analysis for dynamic object colocation
This paper introduces <i>dynamic</i> object colocation, an optimization to reduce copying costs in generational and other incremental garbage collectors by allocating connected objects together in the same space. Previous work indicates that connected ...
Vertical profiling: understanding the behavior of object-priented applications
Object-oriented programming languages provide a rich set of features that provide significant software engineering benefits. The increased productivity provided by these features comes at a justifiable cost in a more sophisticated runtime system whose ...
Method-level phase behavior in java workloads
Java workloads are becoming more and more prominent on various computing devices. Understanding the behavior of a Java workload which includes the interaction between the application and the virtual machine (VM), is thus of primary importance during ...
Instrumentation of standard libraries in object-oriented languages: the twin class hierarchy approach
Code instrumentation is widely used for a range of purposes that include profiling, debugging, visualization, logging, and distributed computing. Due to their special status within the language infrastructure, the <i>standard class libraries</i>, also ...
Recovering binary class relationships: putting icing on the UML cake
A discontinuity exists between object-oriented modeling and programming languages. This discontinuity arises from ambiguous concepts in modeling languages and a lack of corresponding concepts in programming languages. It is particularly acute for binary ...
Refactoring class hierarchies with KABA
KABA is an innovative system for refactoring Java class hierar-chies. It uses the Snelting/Tip algorithm [13] in order to determine a behavior-preserving refactoring which is optimal with respect to a given set of client programs. KABA can be based on ...
Mirrors: design principles for meta-level facilities of object-oriented programming languages
We identify three design principles for reflection and metaprogramming facilities in object oriented programming languages. <i>Encapsulation</i>: meta-level facilities must encapsulate their implementation. <i>Stratification</i>: meta-level facilities ...
Practical predicate dispatch
<i>Predicate dispatch</i> is an object-oriented (OO) language mechanism for determining the method implementation to be invoked upon a message send. With predicate dispatch, each method implementation includes a predicate guard specifying the conditions ...
Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions
Application programmer's interfaces give access to domain knowledge encapsulated in class libraries without providing the appropriate notation for expressing domain composition. Since object-oriented languages are designed for extensibility and reuse, ...
Object-oriented units of measurement
Programs that manipulate physical quantities typically represent these quantities as raw numbers corresponding to the quantities' measurements in particular units (e.g., a length represented as a number of meters). This approach eliminates the ...
Pluggable verification modules: an extensible protection mechanism for the JVM
Through the design and implementation of a JVM that supports Pluggable Verification Modules (PVMs), the idea of an extensible protection mechanism is entertained. Link-time bytecode verification becomes a pluggable service that can be readily replaced, ...
Finding and preventing run-time error handling mistakes
It is difficult to write programs that behave correctly in the presence of run-time errors. Existing programming language features often provide poor support for executing clean-up code and for restoring invariants in such exceptional situations. We ...
Chianti: a tool for change impact analysis of java programs
This paper reports on the design and implementation of Chianti, a change impact analysis tool for Java that is implemented in the context of the Eclipse environment. Chianti analyzes two versions of an application and decomposes their difference into a ...
- Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Recommendations
Acceptance Rates
Year | Submitted | Accepted | Rate |
---|---|---|---|
OOPSLA '14 | 186 | 52 | 28% |
OOPSLA '13 | 189 | 50 | 26% |
OOPSLA '09 | 144 | 25 | 17% |
OOPSLA '07 | 156 | 33 | 21% |
OOPSLA '03 | 147 | 26 | 18% |
OOPSLA '02 | 125 | 25 | 20% |
OOPSLA '01 | 145 | 27 | 19% |
OOPSLA '99 | 152 | 30 | 20% |
Overall | 1,244 | 268 | 22% |