Efficient Multiple and Predicate Dispatching (1999) [33 citations — 3 self]
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...
Citations
| 91 | The Cartesian Product Algorithm: Simple and Precise Type Inference of Parametric Polymorphism – Agesen - 1995 |
| 49 | Optimizing multi-method dispatch using compressed dispatch tables – Amiel, Gruber, et al. - 1994 |

