David Ungar

Publication List Details

Period

0000 - 2008

Number

59

Co-Authors

Sun Microsystems (2008)

David Ungar, Frank Jackson

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)

David Ungar

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

Abstract Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs (2008)

Craig Chambers, David Ungar

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)

In Self, David Ungar

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)

Urs Hijlzle, David Ungar

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

Draft. Outwitting GC Devils: A Hybrid Incremental Garbage Collector OOPSLA'91 Garbage Collection Workshop Position Paper (2007)

David Ungar, Frank Jackson

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)

David Ungar

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)

Urs Hölzle, David Ungar

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

Towards a Universal Implementation Substrate for Object-Oriented Languages, Sun Microsystems Laboratories (1996)

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)

Urs Hölzle, David Ungar

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)

All B. Smith, David Ungar

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)

Urs Hölzle, David Ungar

Abstract. Previous studies have shown that object-oriented programs have different execution characteristics than procedural programs, and that special object-oriented hardware can improve...

The Self-4.0 User Interface: Manifesting a System-wide Vision of Concreteness, Uniformity, and Flexibility (1995)

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)

Urs Hlzle, David Ungar

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)

Urs Hölzle, David Ungar

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

The Self-4.0 User Interface: Manifesting a System-wide Vision of Concreteness, Uniformity, and Flexibility (1995)

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)

All B. Smith, David Ungar

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)

David Ungar, Bay-wei Chang

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)

Urs Hölzle, David Ungar

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

Sifting Out the Gold - Delivering Compact Applications from an Exploratory Object-Oriented Programming Environment (1994)

Ole Agesen, David Ungar

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)

Urs Hölzle, David Ungar

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

—William Shakespeare (1994)

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)

Craig Chambers, David Ungar

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

An Efficient Implementation of Self, a Dynamically-Typed Object-Oriented Language Based on Prototypes (1991)

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

Iterative type analysis and extended message splitting: Optimizing dynamically-typed object-oriented programs (1990)

Craig Chambers, David Ungar

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

Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs (1990)

Craig Chambers, David Ungar

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

Bay-Wei Chang, David Ungar

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

Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language (1989)

Craig Chambers, David Ungar

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

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)

David Ungar, Randall B. Smith

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)

David Ungar, Randall B. Smith

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)

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

SELF: The Power of Simplicity (1987)

David Ungar, Randall B. Smith

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)

Ungar, David

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.

Ungar, David

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

David Ungar

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