One of the more promising automatic storage reclamatmn techniques, generation scavenging, suffers poor performance If many objects live for a fairly long time and then dle. We have investigated the...
Generation Scavenging: A Non-disruptlve High Perfornm.nce Storage Reclamation Algorithm (2008)
Many interactive computing environmencs provide automatic storage reclamation and vir-tual memory to ease the burden of managing storage. Unfortunately, many storage reclams~-tion algorithms impede...
Object-oriented languages have suffe=d from poor perfor-mance caused by frequent and slow dynamically-bound pro-cedure calls. The best way to speed up a procedure call is to compile it out, but...
Abstract Annotating Objects for Transport to Other Worlds (2008)
constructing webs of objects in a larger world of objects. But in order to save or share these programs, the objects must be moved to other worlds. However, a concrete, directly constructed program...
A Third-Generation SELF Implementation: Reconciling Responsiveness with Performance (2008)
Abstract: Programming systems should be both re-sponsive (to support rapid development) and efficient (to complete computations quickly). Pure object-ori-ented languages are harder to implement...
No one enjoys waiting for garbage collection. Since the invention of reference counting in 1960 [Col60], programming language implementors have been striving for a pause-free garbage collector. So...
1 Reconciling Responsiveness with Performance in Pure Object-Oriented Languages (2007)
Dynamically-dispatched calls often limit the performance of object-oriented programs since object-oriented programming encourages factoring code into small, reusable units, thereby increasing the...
SOAR: Smalltalk Without Bytecodes. (2002)
Samples, A. D., Ungar, David, Hilfinger, Paul
We have implemented Smalltalk-80 on an instruction-level simulator for a RISC microcomputer called SOAR. Measurements suggest that even a conventional computer can provide high performance for...
Compiling Smalltalk-80 to a RISC. (2002)
Bush,William R., Samples,A. D., Ungar,David, Hilfinger,Paul N.
The Smalltalk On A RISC project at U.C. Berkeley proved that good performance executing a high-level language on a modified RISC architecture was attainable. The system removed a layer of...
Reconciling responsiveness with performance in pure object-oriented languages (1996)
Dynamically-dispatched calls often limit the performance of object-oriented programs since object-oriented programming encourages factoring code into small, reusable units, thereby increasing the...
Mario Wolczko, Ole Agesen, David Ungar
Abstract. Self is a minimalist object-oriented language with a sophisticated implementation that utilizes adaptive optimization. We have built implementations of Smalltalk and Java by translation to...
Reconciling responsiveness with performance in pure object-oriented languages (1996)
Dynamically dispatched calls often limit the performance of object-oriented programs, since object-oriented programming encourages factoring code into small, reusable units, thereby increasing the...
A Simple and Unifying Approach to Subjective Objects (1996)
R. B. Smith, David Ungar, Randall B. Smith, David Ungar
Most object-oriented languages are objective: an object always responds to the same message in the same way. Subjective objects more closely match naturally occurring systems, and they provide...
Programming as an Experience: The Inspiration for Self (1995)
Abstract. The Self system attempts to integrate intellectual and non-intellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation...
Do object-oriented languages need special hardware support (1995)
Abstract. Previous studies have shown that object-oriented programs have different execution characteristics than procedural programs, and that special object-oriented hardware can improve...
All B. Smith, John Maloney, David Ungar
Manipulating programs is hard, while manipulating objects in the physical world is often easy. Several attributes of the physical world help make it comprehensible and manipulable: concreteness,...
Do Object-Oriented Languages Need Special Hardware Support (1995)
Abstract. Previous studies have shown that object-oriented programs have different execution characteristics than procedural programs, and that special object-oriented hardware can improve...
Programming as an Experience: The Inspiration for Self (1995)
Randall B. Smith, All B. Smith, David Ungar
. The Self system attempts to integrate intellectual and non-intellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation each help...
Do Object-Oriented Languages Need Special Hardware Support? (1995)
: Previous studies have shown that object-oriented programs have different execution characteristics than procedural programs, and that special object-oriented hardware can improve performance. The...
All B. Smith, John Maloney, David Ungar
Manipulating programs is hard, while manipulating objects in the physical world is often easy. Several attributes of the physical world help make it comprehensible and manipulable: concreteness,...
Programming as an Experience: The Inspiration for Self (1995)
Abstract. The Self system attempts to integrate intellectual and non-intellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation...
Animation: From Cartoons to the User Interface (1995)
User interfaces are often based on static presentations, a model ill suited for conveying change. Consequently, events on the screen frequently startle and confuse users. Cartoon animation, in...
Programming as an Experience: The Inspiration for Self (1995)
All B. Smith, David Ungar, Introduction David Ungar
The Self project started in 1986 as a language design exercise at Xerox PARC. Randy Smith and I (with a germ of inspiration from Peter Deutsch) tried to come up with a language design that, without...
Subjectivity in Object-Oriented Systems: Workshop Summary", Addendum to OOPSLA (1994)
William Harrison, Harold Ossher, All B. Smith, David Ungar
Subjectivity in object-oriented systems is a new research area. At this, the first workshop in this area, there was much discussion of fundamental concepts and issues, as well as of perceived needs...
A third-generation Self implementation: Reconciling responsiveness with performance (1994)
Abstract: Programming systems should be both responsive (to support rapid development) and efficient (to complete computations quickly). Pure object-oriented languages are harder to implement...
Integrated, dynamically-typed object-oriented programming environments offer many advantages, but have trouble producing small, self-contained applications. Recent advances in type inference have...
A third-generation Self implementation: Reconciling responsiveness with performance (1994)
Abstract: Programming systems should be both responsive (to support rapid development) and efficient (to complete computations quickly). Pure object-oriented languages are harder to implement...
David Ungar, All B. Smith, David Ungar, Randall B. Smith
Self is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and instantiation...
Debugging Optimized Code with Dynamic Deoptimization (1992)
Urs Hölzle, Craig Chambers, David Ungar
: SELF's debugging system provides complete source-level debugging (expected behavior) with globally optimized code. It shields the debugger from optimizations performed by the compiler by...
Optimizing dynamically-typed object-oriented languages with polymorphic inline caches (1991)
Craig Chambers, David Ungar, Elgin Lee
Abstract. We have developed and implemented techniques that double the performance of dynamically-typed object-oriented languages. Our SELF implementation runs twice as fast as the fastest Smalltalk...
Optimizing dynamically-typed object-oriented languages with polymorphic inline caches (1991)
Urs Hölzle, Craig Chambers, David Ungar
Abstract: Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call...
Organizing programs without classes (1991)
David Ungar, Craig Chambers, Bay-wei Chang
Abstract. All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A...
Parents are shared parts of objects: Inheritance and encapsulation (1991)
Craig Chambers, David Ungar, Bay-wei Chang
Abstract. The design of inheritance and encapsulation in SELF, an object-oriented language based on prototypes, results from understanding that inheritance allows parents to be shared parts of their...
Parents are shared parts of objects: Inheritance and encapsulation (1991)
Craig Chambers, David Ungar, Bay-wei Chang
Abstract. The design of inheritance and encapsulation in SELF, an object-oriented language based on prototypes, results from understanding that inheritance allows parents to be shared parts of their...
Parents are shared parts of objects: Inheritance and encapsulation (1991)
Craig Chambers, David Ungar, Bay-wei Chang
Abstract. The design of inheritance and encapsulation in SELF, an object-oriented language based on prototypes, results from understanding that inheritance allows parents to be shared parts of their...
Organizing programs without classes (1991)
David Ungar, Craig Chambers, Bay-wei Chang
Abstract. All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A...
Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches (1991)
Urs Hölzle, Craig Chambers, David Ungar
: Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a...
Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches (1991)
Urs Hölzle, Craig Chambers, David Ungar
: Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a...
Making Pure Object-Oriented Languages Practical (1991)
In the past, object-oriented language designers and programmers have been forced to choose between pure message passing and performance. Last year, our SELF system achieved close to half the speed of...
Organizing Programs Without Classes (1991)
David Ungar, Craig Chambers, Bay-wei Chang
. All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single...
Craig Chambers, David Ungar, Elgin Lee
. We have developed and implemented techniques that double the performance of dynamically-typed object-oriented languages. Our SELF implementation runs twice as fast as the fastest Smalltalk...
Organizing Programs Without Classes (1991)
David Ungar, Craig Chambers, Bay-Wei Chang, Urs Hölzle
. All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single...
Abstract. Object-oriented languages have suffered from poor performance caused by frequent and slow dynamically-bound procedure calls. The best way to speed up a procedure call is to compile it out,...
. Object-oriented languages have suffered from poor performance caused by frequent and slow dynamically-bound procedure calls. The best way to speed up a procedure call is to compile it out, but...
Experiencing SELF Objects: An Object-Based Artificial Reality (1990)
Programming is hard. Programming forces... This paper describes the approach we have taken with the design of the user interface for SELF. Detailed description of the language and implementation can...
A Shared View of Sharing: The Treaty of Orlando (1989)
Lynn Andrea Stein, Henry Lieberman, David Ungar
Introduction For the past few years, researchers have been debating the relative merits of object-oriented languages with classes and inheritance as opposed to those with prototypes and delegation....
Dynamically-typed object-oriented languages please programmers, but their lack of static type information penalizes performance. Our new implementation tech-niques extract static type information...
Tenuring Policies for Generation-Based Storage Reclamation (1988)
David Ungap, David Ungar, Frank Jackson, Frank Jackson
unga&?amadeus.stanford.edu
Architectural Support for Programming Languages and Operating Systems (1987)
William R. Bush, David Ungar, Paul N. Hilfinger
language can attain high performance on a modified reduced instruction set architecture. The sin-gle most important optimization is the removal of a layer of interpretation, compiling the bytecoded...
Self: The power of simplicity (1987)
Abstract. SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and...
Self: The power of simplicity (1987)
Abstract. SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and...
SELF: The Power of Simplicity (1987)
. SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and...
SELF: The Power of Simplicity (1987)
Abstract. SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and...
Debugging and the Experience of Immediacy. (0000)
A good user interface brings the end user face-to-face with whatever is being manipulated and experienced. The article discusses about the experience of immediacy in a programming environment which...
Debugging and the Experience of Immediacy.
A good user interface brings the end user face-to-face with whatever is being manipulated and experienced. The article discusses about the experience of immediacy in a programming environment which...
Object, Message, and Performance: How they coexist in SELF
this paper, we will present the novel implementation techniques that recapture much of the efficiency that would seem to be lost in a pure object-oriented language. For many of the benchmarks we have...
Towards a Universal Implementation Substrate for Object-Oriented Languages
Mario Wolczko Ole, Ole Agesen, David Ungar
. Self is a minimalist object-oriented language with a sophisticated implementation that utilizes adaptive optimization. We have built implementations of Smalltalk and Java by translation to Self....