Abstract:
The efficiency of dynamically-typed object-oriented languages relies on a fast message dispatch mechanism. Since type information is absent at compile-time, message expressions can be very general. A constant time solution to this problem requires the compiler to compute a full dispatch table, i.e., a complete enumeration of all possible receiver-selector pairs. Unfortunately, the space consumption of this table is prohibitive for all practical purposes. In this report, we discuss several known implementations of the dynamic dispatch algorithm based on compression techniques of the full table and discuss their drawbacks. Our main contribution is a new algorithm for message dispatching, motivated by a static class hierarchy analysis of two commercial products, the NeXTStep 3.2 and the Objectworks 4.1 class hierarchies. We summarize the run-time performance and space requirements for our algorithm. Acknowledgements I would like to thank foremost my thesis advisor Professor Bernard M.E....
Citations
|
1137
|
Smalltalk-80: The language and its implementation
– Goldberg, Robson
- 1983
|
|
276
|
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
– Dean, Grove, et al.
- 1995
|
|
193
|
and Bjarne Stroustrup. The Annotated C++ Reference Manual
– Ellis
- 1990
|
|
98
|
Optimizing dynamically-typed object-oriented languages with polymorphic inline caches
– Hölzle, Chambers, et al.
- 1991
|
|
71
|
Programming Languages: Concepts and Constructs, second edition
– Sethi
- 1996
|
|
47
|
Type extensions
– Wirth
- 1988
|
|
42
|
Optimizing Method Search with Lookup Caches and Incremental Coloring
– Andre, Royer
- 1992
|
|
37
|
Efficient method dispatch in PCL
– Kiczales, Jr
- 1993
|
|
28
|
Selector table indexing and sparse arrays
– Driesen
- 1993
|
|
23
|
Taming message passing: Efficient method look-up for dynamically typed languages
– Vitek, Horspool
- 1994
|
|
21
|
Type-extension type tests can be performed in constant time
– Cohen
- 1991
|
|
17
|
Measurement and application of dynamic receiver class distributions
– Garrett, Dean, et al.
- 1994
|
|
8
|
Message dispatch on modern computer architectures
– Driesen, Hlzle, et al.
- 1995
|
|
6
|
Method Lookup Strategies in Dynamically-Typed Object-Oriented Programming Languages
– Driesen
- 1993
|
|
6
|
Optimizing dynamically-dispatched calls with run-time type feedback
– olzle, Ungar
- 1994
|
|
6
|
Dynamic dispatch in object-oriented languages
– Milton, Schmidt
- 1994
|
|
6
|
Compact dispatch tables for dynamicallytyped object-oriented languages
– Vitek
- 1995
|
|
5
|
Efficient implementation of the Smalltalk-80
– Deutsch, Schiffman
- 1984
|
|
2
|
The Java Language: A White Paper
– HotJava
- 1995
|
|
2
|
Optimizing method lookup in dynamic object-oriented languages with sparse arrays
– Thorup
- 1993
|
|
1
|
Object-Oriented Programming: An Evolutionnary Approach
– Cox, Novobilski
- 1991
|
|
1
|
The programming language Oberon-2
– Moessenboeck
- 1991
|