ACM Home Page
Please provide us with feedback. Feedback
Efficient multiple and predicated dispatching
Full text PdfPdf (2.41 MB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Denver, Colorado, United States
Pages: 238 - 255  
Year of Publication: 1999
ISBN:1-58113-238-7
Also published in ...
Authors
Craig Chambers  Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, WA
Weimin Chen  Department of Computer Science and Engineering, University of Washington, Box 352350, Seattle, WA
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 55,   Citation Count: 21
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/320384.320407
What is a DOI?

ABSTRACT

The speed of message dispatching is an important issue in the overall performance of object-oriented programs. We have developed an algorithm for constructing efficient dispatch functions that combines novel algorithms for efficient single dispatching, multiple dispatching, and predicate dispatching. Our algorithm first reduces methods written in the general predicate dispatching model (which generalizes single dispatching, multiple dispatching, predicate classes and classifiers, and pattern-matching) into ones written using a simpler multimethod dispatching model. Our algorithm then computes a strategy for implementing multiple dispatching in terms of sequences of single dispatches, representing the strategy as a lookup DAG. Finally, our algorithm computes an implementation strategy separately for each of the single dispatches, producing for each dispatch a dispatch tree, which is a binary decision tree blending class identity tests, class range tests, and table lookups. Our algorithm exploits any available static information (from type declarations or class analysis) to prune unreachable paths from the lookup DAG, and uses any available dynamic profile information to minimize the expected time to search the dispatch trees. We measure the effectiveness of our dispatching algorithms on a collection of large Cecil programs, compiled by the Vortex optimizing compiler, showing improvements of up to 30% over already heavily optimized baseline versions.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
Agesen 95
Amiel et. al. 94
Bobrow et. al. 88
Chambers & Ungar 90
 
Chambers 92
 
Chambers 93a
Craig Chambers. The Cecil Language: Specification and Rationale. Technical Report UW-CSE-93-03-05, Department of Computer Science and Engineering. University of Washington, March 1993. Revised, March 1997.
 
Chambers 93b
 
Chambers et al. 96
Craig Chambers, Jeffrey Dean, and David Grove. Whole-Program Optimization of Object-Oriented Languages. Teelmieal Report UW-CSE-96-06-02, Department of Computer Science and Engineering. University of Washington, June 1996.
 
Chen et al. 94
 
Dean et al. 95
Dean et al. 96
DeFouw et al. 98
Driesen & Hölzle 95
Driesen 93
 
Driesen et al. 95
 
Dujardin 96
Eric Dujardin. Efficient Dispatch of Multimehtods in Constant Time with Dispatch Trees. Technical Report 2892, INRIA, Rocquencourt, France, 1996.
Dujardin et al. 98
Dussud 89
 
Ernst et al. 98
Fernandez 95
 
Goldberg & Robson 83
 
Gosling et al. 96
Grove et al. 95
Grove et al. 97
 
Hamer et al. 90
J. Hamer, J.G. Hosking, and W.B. Mugridge. A Method for Integrating Classification Within an Object-Oriented Environment. Technical Report Auckland Computer Science Report No. 48, Department of Computer Science, University of Auckland, October 1990.
 
Hölzle et al. 91
 
Hu & Tucker 71
T.C. Hu and A. C. Tucker. "Optimal Computer Search Trees and Variable-Length Alphabetical Codes. SIAM Journal on Applied Mathematics, 21 (4):514-532, 1971.
Hudak et al. 92
 
Hyafil & Rivest 76
Laurem Hyafil and RonaldL. Rivest. Constructing optimal binary decision trees is NP-complete. Information Processing Letters, 5( 1): 15-17, May 1976.
Johnson 86
Johnson et al. 88
 
Kaehler & Krasner 83
Ted Kaehler and Glenn Krasner. LOOM Large Object-Oriented Memory for Smalltalk-80 Systems. In G. Krasner, editor, Smalltalk-80 m Bits of History, Words of Advice, chapter 14, pages 251-270. Addison-Wesley, 1983.
Kiczales & Rodriguez 90
 
Meyer 92
 
Milner et al. 97
Morel & Renvoise 79
 
Mugridge et al. 91
 
Nakamura et al. 96
Hiroaki Nakamura, Tamiya Onodera, and Mildo Takeuehi. Message dispatch using binary decision trees. Technical Report RT0137, IBM Research, Tokyo Research Laboratory, Kanagawa, Japan, March 1, 1996.
 
Nelson 91
 
Pang et al. 99
 
Peyton Jones 87
Plevyak & Chien 94
Rose 88
 
Shalit 96
Andrew Shalit, editor. The Dylan Reference Manual. Addison-Wesley, Reading, MA, 1996.
 
Steele Jr. 90
 
Stroustrup 91
 
Taivalsaari 93
Antero Taivalsaari. Object-oriented programming with modes. Journal of Object-Oriented Programming, pages 25--32, June 1993.
Vitek et al. 97
Zendra et al. 97

CITED BY  21

Collaborative Colleagues:
Craig Chambers: colleagues
Weimin Chen: colleagues