2,246 papers · page 91 of 113
Karsten Weihe
This paper is about reusable, efficient implementations of complex algorithms and their integration into software packages. It seems that this problem is not yetwell understood, and that it is not at all clear how object-oriented and other approaches may contribute to a solution.…
Olivier Zendra, Dominique Colnet, Suzanne Collin
SmallEiffel is an Eiffel compiler which uses a fast simple type inference mechanism to remove most late binding calls, replacing them by static bindings. Starting from the system's entry point, it compiles only statically living code, which saves compiling and then removing dead …
Ali-Reza Adl-Tabatabai, Thomas R. Gross, Guei-Yuan Lueh
This paper describes how the cmcc compiler reuses code---both internally (reuse between different modules) and externally (reuse between versions for different target machines). The key to reuse are the application frameworks developed for global data-flow analysis, code generati…
Isabelle Attali, Denis Caromel, Sidi O. Ehmety, Sylvain Lippi
We present a graphical environment for parallel object-oriented programming. It provides visual tools to develop and debug object-oriented programs as well as parallel or concurrent systems. This environment was derived from a structural operational semantics of an extension of t…
David F. Bacon, Peter F. Sweeney
Virtual functions make code easier for programmers to reuse but also make it harder for compilers to analyze. We investigate the ability of three static analysis algorithms to improve C++ programs by resolving virtual function calls, thereby reducing compiled code size and reduci…
Daniel Bardou, Christophe Dony
This paper's primary aim is to improve the understanding of the delegation mechanism as defined in [18]. We propose a new characterization of delegation based on the notions of name sharing, property sharing and value sharing. It allows us (1) to clearly differentiate delegation …
Kim Barrett, Bob Cassels, Paul Haahr, David A. Moon, Keith Playford, P. Tucker Withington
Object-oriented languages with multiple inheritance and automatic conflict resolution typically use a linearization of superclasses to determine which version of a property to inherit when several superclasses provide definitions. Recent work has defined several desirable charact…
Jeffrey Bonar, Nancy Lehrer, Kelly Looney, Stewart Nickolas, James Russell, Randy Schnier, Ted Selker
The explosive emergence of the Internet forces us to rethink the traditional roles for client, server, and objects. Component technology has emerged as the way objects and frameworks are packaged for flexible object integration. In particular, components allow users who are not p…
Lorette Cameron, Charles Berman, Sanjiv Gossain, Brian Henderson-Sellers, Laura Hill, Randall B. Smith
Reuse is about more than sharing code. As technology, standards and ideas evolve: so do the artifacts available for reuse. Our understanding of the non-technical issues associated with reuse also progresses. This panel will look at reuse from 5 different perspectives. We will loo…
Paul S. R. Chisholm, Larry L. Constantine, Ward Cunningham, Luke Hohmann, Norman L. Kerth
The key to making object technology work isn't technology. So what is it? This panel will cover a lot of the "soft" issues about dealing with people and teams. It's partly about managing software development, and mostly about doing it.
Jeffrey Dean, Greg DeFouw, David Grove, Vassily Litvinov, Craig Chambers
Previously, techniques such as class hierarchy analysis and profile-guided receiver class prediction have been demonstrated to greatly improve the performance of applications written in pure object-oriented languages, but the degree to which these results are transferable to appl…
Hervé Dicky, Christophe Dony, Marianne Huchard, Thérèse Libourel
Several algorithms [Cas92, MS89, Run92, DDHL94a, DDHL95, GMM95] have been proposed to automatically insert a class into an inheritance hierarchy. But actual hierarchies all include overriden and overloaded properties that these algorithms handle either very partially or not at al…
Amer Diwan, J. Eliot B. Moss, Kathryn S. McKinley
To use modern hardware effectively, compilers need extensive control-flow information. Unfortunately, the frequent method invocations in object-oriented languages obscure control flow. In this paper, we describe and evaluate a range of analysis techniques to convert method invoca…
Karel Driesen, Urs Hölzle
We study the direct cost of virtual function calls in C++ programs, assuming the standard implementation using virtual function tables. We measure this overhead experimentally for a number of large benchmark programs, using a combination of executable inspection and processor sim…
Alan M. Durham, Ralph E. Johnson
Frameworks and domain-specific visual languages are two different reuse techniques, the first targeted at expert programmers, the second at domain experts. In fact, these techniques are closely related. This paper shows how to develop a domain-specific visual language by first de…
Allen H. Dutoit, Sean Levy, Douglas Cunningham, Robert Patrick
BOS is a prototype-based, object-oriented toolkit aimed at better supporting evolutionary software development. BOS attempts to support a spectrum of activities in one environment---ranging from rapid prototyping to code hardening. Features enabling rapid prototyping include a pr…
Earl F. Ecklund Jr., Lois M. L. Delcambre, Michael J. Freiling
Evolution of software systems is prompted by all sorts of changes. This paper demonstrates how the use case, a well known construct in object-oriented analysis, is adapted to form the change case, to identify and articulate anticipated system changes. A change case provides the a…
Steven Fraser, Alistair Cockburn, Leo Brajkovich, James Coplien, Larry L. Constantine, Dave West
Anthropology is the study of civilization, particularly its societies, customs, structure, and evolution. Our premise is that there are cultureal "chasms" to be crossed to ensure the success of the technological beachhead established by innovators and early adopters of the OO par…
Steven Fraser, Robert C. Martin, Stephen J. Mellor, Michael Lee, Grady Booch, Stephen Garone, Martin Fowler, Douglas C. Schmidt + 1 more
In the realm of OO methodologies there are two major schools of thought. Both schools claim to define mechanisms whereby software applications can be created that are reusable, maintainable, and robust. Moreover, both schools claim to use abstraction as a key mechanism for achiev…
Joseph Gil, David H. Lorenz
The class of an object is not necessarily the only determiner of its runtime behaviour. Often it is necessary to have an object behave differently depending upon the other objects to which it is connected. However, as it currently stands, object-oriented programming provides no s…