Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1028976acmconferencesBook PagePublication PagessplashConference Proceedingsconference-collections
OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM2004 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
OOPSLA04: ACM SIGPLAN Object Oriented Programming Systems and Applications Conference Vancouver BC Canada October 24 - 28, 2004
ISBN:
978-1-58113-831-3
Published:
24 October 2004
Sponsors:
Reflects downloads up to 20 Nov 2024Bibliometrics
Skip Abstract Section
Abstract

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.

Skip Table Of Content Section
SESSION: Generics
Article
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 ...

Article
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 ...

Article
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 ...

SESSION: Garbage collection
Article
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 ...

Article
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 ...

Article
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 ...

SESSION: Inheritance
Article
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 ...

Article
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, ...

Article
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 ...

SESSION: Aspects in the middle
Article
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 ...

Article
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 ...

Article
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 ...

SESSION: Java technologies
Article
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. ...

Article
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 ...

Article
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 ...

SESSION: Performance
Article
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 ...

Article
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 ...

Article
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 ...

SESSION: Advanced design
Article
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 ...

Article
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 ...

Article
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 ...

SESSION: Languages
Article
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 ...

Article
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, ...

Article
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 ...

SESSION: Verification and validation
Article
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, ...

Article
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 ...

Article
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 ...

Contributors
  • IBM Thomas J. Watson Research Center
  • Vanderbilt University
  1. Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
    Please enable JavaScript to view thecomments powered by Disqus.

    Recommendations

    Acceptance Rates

    Overall Acceptance Rate 268 of 1,244 submissions, 22%
    YearSubmittedAcceptedRate
    OOPSLA '141865228%
    OOPSLA '131895026%
    OOPSLA '091442517%
    OOPSLA '071563321%
    OOPSLA '031472618%
    OOPSLA '021252520%
    OOPSLA '011452719%
    OOPSLA '991523020%
    Overall1,24426822%