Welcome to OOPSLA 2003, the 18th Annual ACM Conference on Object-Oriented Programming, Systems, Languages and Applications.OOPSLA is the premier forum for sharing of knowledge on object technology. This year's program is outstanding. It provides many ways for you to learn, contribute, and exchange ideas and experiences in a broad range of disciplines woven with the common thread of object technology. OOPSLA's collegial atmosphere allows you to rub elbows and share stories with the leaders in the field!OOPSLA 2003 features five invited talks. The speakers were chosen for their prominence, influence, and creativity. The talks will be intellectually stimulating and entertaining. Four of the talks address open-source software: for the Onward! Keynote talk, Prof. Larry Lessig will discuss the boundaries of intellectual property; the OOPSLA Keynote is by Tim O'Reilly, who will discuss the paradigm shift away from desktop applications to Web-hosted applications; Gerry Labedz will describe how emerging distributed computing systems could mutate into the communications systems of the future; and Erich Gamma will discuss the Eclipse platform. The fifth invited talk, by David Ungar, discusses the paradoxes inherent in programming language design.OOPSLA's tutorial program features 58 sessions chosen to provide the knowledge you need to be effective in today's demanding research and industrial climate. The workshop program contains 24 half- or full-day sessions. Many recent breakthroughs in object technology started as OOPSLA workshops.This year's 26 technical paper presentations are outstanding, they have to be to survive the rigorous OOPSLA review process. There are nine panels that showcase the opinions of leading researchers and industry experts in a lively, participatory, educational, and entertaining format. And there are three sessions of Practitioner Reports where "real" developers talk about real-world issues.OOPSLA 2003 also has two special tracks. The Onward! track, which debuted last year, features presentations that aim to alter or redefine the art by proposing a leap forward, or sideways, regarding computing. The Domain-Driven Design track focuses on a range of emerging technologies that address aligning code and problem domain more closely.You'll hear about emerging, creative and innovative research during Poster and Demonstration sessions. In these sessions presenters often ask for ideas and feedback from the audience; these discussions are stimulating, and often lead to breakthroughs for both you and the researchers.OOPSLA 2003 will be a busy and exciting conference. If this is your first OOPSLA join us immediately after the Welcome Reception for the Newcomer's Session. We'll answer your questions and give you some tips for organizing your activities.Finally, remember that OOPSLA is an interactive experience. You should talk to your fellow object technologist, you should ask questions of the speakers, you should use the ample networking opportunities to interact, and finally you should have fun. Because of your participation, OOPSLA will continue to provide the best environment for object-technology to created, discussed, and shared.
Language-independent aspect-oriented programming
The term aspect-oriented programming (AOP) has come to describe the set of programming mechanisms developed specifically to express crosscutting concerns. Since crosscutting concerns cannot be properly modularized within object-oriented programming, ...
Refactoring for generalization using type constraints
Refactoring is the process of applying behavior-preserving transformations (called "refactorings") in order to improve a program's design. Associated with a refactoring is a set of preconditions that must be satisfied to guarantee that program behavior ...
Partial behavioral reflection: spatial and temporal selection of reification
Behavioral reflection is a powerful approach for adapting the behavior of running applications. In this paper we present and motivate partial behavioral reflection, an approach to more efficient and flexible behavioral reflection. We expose the spatial ...
Applying traits to the smalltalk collection classes
Traits are a programming language technology that promote the reuse of methods between unrelated classes. This paper reports on a refactoring of the Smalltalk collections classes using traits. The original collection classes contained much duplication ...
OOPAL: integrating array programming in object-oriented programming
Array programming shines in its ability to express computations at a high-level of abstraction, allowing one to manipulate and query whole sets of data at once. This paper presents the OPA model that enhances object-oriented programming with array ...
Automatic detection and repair of errors in data structures
We present a system that accepts a specification of key data structure consistency constraints, then dynamically detects and repairs violations of these constraints, enabling the program to continue to execute productively even in the face of otherwise ...
A first-class approach to genericity
This paper describes how to add first-class generic types---including mixins---to strongly-typed OO languages with nominal subtyping such as Java and C#. A generic type system is "first-class" if generic types can appear in any context where ...
A comparative study of language support for generic programming
Many modern programming languages support basic generic programming, sufficient to implement type-safe polymorphic containers. Some languages have moved beyond this basic support to a broader, more powerful interpretation of generic programming, and ...
Lightweight confinement for featherweight java
Confinement properties impose a structure on object graphs which can be used to enforce encapsulation properties essential to certain program optimizations, modular reasoning, and software assurance. This paper formalizes the notion of confined type in ...
Dynamic metrics for java
In order to perform meaningful experiments in optimizing compilation and run-time system design, researchers usually rely on a suite of benchmark programs of interest to the optimization technique under consideration. Programs are described as numeric, ...
How java programs interact with virtual machines at the microarchitectural level
Java workloads are becoming increasingly prominent on various platforms ranging from embedded systems, over general-purpose computers to high-end servers. Understanding the implications of all the aspects involved when running Java workloads, is thus ...
Effectiveness of cross-platform optimizations for a java just-in-time compiler
- Kazuaki Ishizaki,
- Mikio Takeuchi,
- Kiyokuni Kawachiya,
- Toshio Suganuma,
- Osamu Gohda,
- Tatsushi Inagaki,
- Akira Koseki,
- Kazunori Ogata,
- Motohiro Kawahito,
- Toshiaki Yasue,
- Takeshi Ogasawara,
- Tamiya Onodera,
- Hideaki Komatsu,
- Toshio Nakatani
This paper describes the system overview of our Java Just-In-Time (JIT) compiler, which is the basis for the latest production version of IBM Java JIT compiler that supports a diversity of processor architectures including both 32-bit and 64-bit modes, ...
HydroJ: object-oriented pattern matching for evolvable distributed systems
In an evolving software system, components must be able to change independently while remaining compatible with their peers. One obstacle to independent evolution is the brittle parameter problem: the ability of two components to communicate can depend ...
Relaxed MultiJava: balancing extensibility and modular typechecking
We present the rationale, design, and implementation of Relaxed MultiJava (RMJ), a backward-compatible extension of Java that allows programmers to add new methods to existing classes and to write multimethods. Previous languages supporting these forms ...
MJ: a rational module system for Java and its applications
While Java provides many software engineering benefits, it lacks a coherent module system and instead provides only packages (which are primarily a name space mechanism) and classloaders (which are very low-level). As a result, large Java applications ...
Mostly concurrent garbage collection revisited
The mostly concurrent garbage collection was presented in the seminal paper of Boehm et al. With the deployment of Java as a portable, secure and concurrent programming language, the mostly concurrent garbage collector turned out to be an excellent ...
An on-the-fly mark and sweep garbage collector based on sliding views
With concurrent and garbage collected languages like Java and C# becoming popular, the need for a suitable non-intrusive, efficient, and concurrent multiprocessor garbage collector has become acute. We propose a novel mark and sweep on-the-fly algorithm ...
Heap compression for memory-constrained Java environments
Java is becoming the main software platform for consumer and embedded devices such as mobile phones, PDAs, TV set-top boxes, and in-vehicle systems. Since many of these systems are memory constrained, it is extremely important to keep the memory ...
Declaring and checking non-null types in an object-oriented language
Distinguishing non-null references from possibly-null references at the type level can detect null-related errors in object-oriented programs at compile-time. This paper gives a proposal for retrofitting a language such as C# or Java with non-null ...
Object equality profiling
We present Object Equality Profiling (OEP), a new technique for helping programmers discover optimization opportunities in programs. OEP discovers opportunities for replacing a set of equivalent object instances with a single representative object. Such ...
Mark-copy: fast copying GC with less space overhead
Copying garbage collectors have a number of advantages over non-copying collectors, including cheap allocation and avoiding fragmentation. However, in order to provide completeness (the guarantee to reclaim each garbage object eventually), standard ...
Ulterior reference counting: fast garbage collection without a long wait
General purpose garbage collectors have yet to combine short pause times with high throughput. For example, generational collectors can achieve high throughput. They have modest average pause times, but occasionally collect the whole heap and ...
Connectivity-based garbage collection
We introduce a new family of connectivity-based garbage collectors (Cbgc) that are based on potential object-connectivity properties. The key feature of these collectors is that the placement of objects into partitions is determined by performing one of ...
Saving the world from bad beans: deployment-time confinement checking
The Enterprise JavaBeans (EJB) framework requires developers to preserve architectural integrity constraints when writing EJB components. Breaking these constraints allows components to violate the transaction protocol, bypass security mechanisms, ...
Language support for lightweight transactions
Concurrent programming is notoriously difficult. Current abstractions are intricate and make it hard to design computer systems that are reliable and scalable. We argue that these problems can be addressed by moving to a declarative style of concurrency ...
Lazy modular upgrades in persistent object stores
Persistent object stores require a way to automatically upgrade persistent objects, to change their code and storage representation. Automatic upgrades are a challenge for such systems. Upgrades must be performed in a way that is efficient both in space ...
Cited By
Fabry J, Dinkelaker T, Noyé J and Tanter É (2015). A Taxonomy of Domain-Specific Aspect Languages, ACM Computing Surveys, 47:3, (1-44), Online publication date: 16-Apr-2015.-
Caromel D, Mateu L, Pothier G and Tanter É (2007). Parallel object monitors, Concurrency and Computation: Practice and Experience, 10.1002/cpe.1261, 20:12, (1387-1417), Online publication date: 25-Aug-2008.
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% |



