- Sponsor:
- sigplan
No abstract available.
An evaluation of automatic object inline allocation techniques
Object-oriented languages such as Java and Smalltalk provide a uniform object reference model, allowing objects to be conveniently shared. If implemented directly, these uniform reference models can suffer in efficiency due to additional memory ...
JRes: a resource accounting interface for Java
With the spread of the Internet the computing model on server systems is undergoing several important changes. Recent research ideas concerning dynamic operating system extensibility are finding their way into the commercial domain, resulting in designs ...
Dynamic class loading in the Java virtual machine
Class loaders are a powerful mechanism for dynamically loading software components on the Java platform. They are unusual in supporting all of the following features: laziness, type-safe linkage, user-defined extensibility, and multiple communicating ...
Object-oriented practice in 1998 (panel): does it help or hinder collaboration?
- John Artim,
- Charlie Bridgeford,
- Lillian Christman,
- James Coplien,
- Mary Beth Rosson,
- Stanley Taylor,
- Rebecca Wirfs-Brock
Groups of people working in concert perform most commercial, industrial or in-house software development. These groups are often quite diverse. This panel brings together object-oriented consultants and developers as well as practitioners and ...
Ownership types for flexible alias protection
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct linked data structures and networks of interacting objects, aliasing is problematic in that an aggregate object's state can change via an alias to one of ...
Borrow, copy or steal?: loans and larceny in the orthodox canonical form
Dynamic memory management in C++ is complex, especially across the boundaries of library abstract data types. C++ libraries designed in the orthodox canonical form (OCF) alleviate some of the problems by ensuring that classes which manage any kind of ...
Safe metaclass programming
In a system where classes are treated as first class objects, classes are defined as instances of other classes called metaclasses. An important benefit of using metaclasses is the ability to assign properties to classes (e.g. being abstract, being ...
Adaptive plug-and-play components for evolutionary software development
In several works on design methodologies, design patterns, and programming language design, the need for program entities that capture the patterns of collaboration between several classes has been recognized. The idea is that in general the unit of ...
Role model based framework design and integration
Today, any large object-oriented software system is built using frameworks. Yet, designing frameworks and defining their interaction with clients remains a difficult task. A primary reason is that today's dominant modeling concept, the class, is not ...
How to preserve the benefits of design patterns
The rapid evolution of Design Patterns has hampered the benefits gained from using Design Patterns. The increase in the number of Design Patterns makes a common vocabulary unmanageable, and the tracing problem obscures the documentation that should be ...
Data groups: specifying the modification of extended state
This paper explores the interpretation of specifications in the context of an object-oriented programming language with subclassing and method overrides. In particular, the paper considers annotations for describing what variables a method may change ...
Logical observable entities
We show how finite-state machines can standardize the protocol used by a component object to notify other interested objects of its state changes, resulting in a more effective use of static types to constrain both parties, and a more efficient ...
A lambda calculus of objects with self-inflicted extension
In this paper we investigate, in the context of functional prototype-based languages, objects which might extend themselves upon receiving a message. The possibility for an object of extending its own "self", referred to by Cardelli, as a self-inflicted ...
Making the future safe for the past: adding genericity to the Java programming language
We present GJ, a design that extends the Java programming language with generic types and methods. These are both explained and implemented by translation into the unextended language. The translation closely mimics the way generics are emulated by ...
Compatible genericity with run-time types for the Java programming language
The most serious impediment to writing substantial programs in the Java™ programming language is the lack of a gentricity mechanism for abstracting classes and methods with respect to type. During the past two years, several research groups have ...
Parametric polymorphism for Java: a reflective solution
A number of inadequacies of existing implementation techniques for extending Java™ with parametric polymorphism are revealed. Homogeneous translations are the most space-efficient but they are not compatible with reflection, some models of ...
Vclusters: a flexible, fine-grained object clustering mechanism
We consider the problem of delivering an effective fine-grained clustering tool to implementors and users of object-oriented database systems. This work emphasizes on-line clustering mechanisms, as contrasted with earlier work that concentrates on ...
System support for object groups
This paper draws several observations from our experiences in building support for object groups. These observations actually go beyond our experiences and may apply to many other developments of object based distributed systems.Our first experience ...
Extending the ODMG object model with composite objects
In this paper we extend the ODMG object data model with composite objects. A composite object is an object built by aggregating other component objects. Exclusiveness and dependency constraints, as well as referential integrity, can be associated with ...
Visualizing dynamic software system information through high-level models
Dynamic information collected as a software system executes can help software engineers perform some tasks on a system more effectively. To interpret the sizable amount of data generated from a system's execution, engineers require tool support. We have ...
Object lessons learned from a distributed system for remote building monitoring and operation
In this paper we describe our experiences with the design, the deployment, and the initial operation of a distributed system for the remote monitoring and operation of multiple heterogeneous commercial buildings across the Internet from a single control ...
Lightweight object-oriented shared variables for distributed applications on the Internet
This paper describes a lightweight yet powerful approach for writing distributed applications using shared variables. Our approach, called SHAREHOLDER, is inspired by the flexible and intuitive model of information access common to the World Wide Web. ...
A type system for object initialization in the Java bytecode language
In the standard Java implementation, a Java language program is compiled to Java bytecode. This bytecode may be sent across the network to another site, where it is then interpreted by the Java Virtual Machine. Since bytecode may be written by hand, or ...
Reasoning about Java classes: preliminary report
We present the first results of a project called LOOP, on formal methods for the object-oriented language Java. It aims at verification of program properties, with support of modern tools. We use our own front-end tool (which is still partly under ...
What is Java binary compatibility?
Separate compilation allows the decomposition of programs into units that may be compiled separately, and linked into an executable. Traditionally, separate compilation was equivalent to the compilation of all units together, and modification and re-...
Compound types for Java
Type compatibility can be defined based on name equivalence, that is, explicit declarations, or on structural matching. We argue that component software has demands for both. For types expressing individual contracts, name equivalence should be used so ...
Multiple dispatch as dispatch on Tuples
Many popular object-oriented programming languages, such as C++, Smalltalk-80, Java, and Eiffel, do not support multiple dispatch. Yet without multiple dispatch, programmers find it difficult to express binary methods and design patterns such as the "...
Contraint-based polymorphism in Cecil: towards a practical and static type system
We present a static type system for object-oriented languages which strives to provide static typechecking without resorting to dynamic "type casts," restricting what code the programmer can write, or being too verbose or difficult to use in practice. ...
Index Terms
- Proceedings of the 13th 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% |