MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

An Efficient Implementation of Self, a Dynamically-Typed Object-Oriented Language Based on Prototypes (1991) [145 citations — 24 self]

by Craig Chambers ,  David Ungar ,  Elgin Lee
Add To MetaCart

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 implementation, despite SELF's lack of classes and explicit variables. To compensate for the absence of classes, our system uses implementation-level maps to transparently group objects cloned from the same prototype, providing data type information and eliminating the apparent space overhead for prototype-based systems. To compensate for dynamic typing, user-defined control structures, and the lack of explicit variables, our system dynamically compiles multiple versions of a source method, each customized according to its receiver's map. Within each version the type of the receiver is fixed, and thus the compiler can statically bind and inline all messages sent to self. Message splitting and type prediction extract and preserve even more static type information, allowing the compiler to inline ma...

Citations

1295 The C++ Programming Language – Stroustrup - 1991
1137 Smalltalk-80: The Language and Its Implementation – Goldberg, Robson
481 Self: The power of simplicity – Ungar, Smith - 1987
306 Using Prototypical Objects to Implement Shared Behavior in ObjectOriented Systems – Lieberman - 1986
202 Efficient implementation of the Smalltalk-80 system – Deutsch, Schiffman - 1984
200 Dimensions of object-based language design – Wegner - 1987
185 Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language – Chambers, Ungar - 1989
141 Object-oriented programming with Flavors – Moon - 1986
126 The Design and Evaluation of a High Performance Smalltalk System. ACM Distinguished Dissertations – Ungar - 1987
116 Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented – Chambers, Ungar - 1990
104 An Introduction to Trellis/Owl – Schaffert, Cooper, et al. - 1986
86 Delegation is inheritance – Stein - 1987
58 Classes Versus Prototypes in Object-Oriented Languages – Borning - 1986
55 Genericity versus Inheritance – Meyer - 1986
48 TS: An Optimizing Compiler for Smalltalk – Johnson, Graver, et al. - 1988
48 Tenuring policies for generationbased storage reclamation – Ungar, Jackson - 1988
47 Inferring Types in Smalltalk – Suzuki - 1981
40 A type declaration and inference system for Smalltalk – Borning, Ingalls - 1982
39 An Exemplar Based Smalltalk – LaLonde, Thomas, et al. - 1986
34 the ultimate imperative – Sussman, Lambda - 1976
16 Lambda: the ultimate declarative – Steele - 1976
14 Hurricane: an optimizing compiler for Smalltalk – Atkinson - 1986
12 Object Storage and Inheritance for SELF, a Prototype-Based ObjectOriented Programming Language. Engineer’s thesis – Lee - 1988
10 The Smalltalk-80 benchmarks – McCall - 1983
7 The Dorado Smalltalk-80 Implementation: Hardware Architecture's Impact on Software Architecture – Deutsch - 1983
6 QUICKTALK: a Smalltalk80 dialect for defining primitive methods – Ballard, Maier, et al. - 1986
3 integer benchmarks – Hennessy - 1988
2 Type inferencing – Curtis - 1989