MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Fast algorithm for creating space efficient dispatching tables with application to multi-dispatching (2002) [9 citations — 3 self]

Download:
Download as a PDF
by Yoav Zibin, Joseph (yossi Gil
In Proceedings of the 17 th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications
http://www.cs.technion.ac.il/~zyoav/publications/OOPSLA02-dispatching-TS.pdf
Add To MetaCart

Abstract:

The dispatching problem can be solved very efficiently in the singleinheritance (SI) setting. In this paper we show how to extend one such solution to the multiple-inheritance (MI) setting. This generalization comes with an increase to the space requirement by a small factor of ¢. This factor can be thought of as a metric of the complexity of the topology of the inheritance hierarchy. On a data set of 35 hierarchies totaling some 64 thousand types, our dispatching data structure, based on a novel type slicing technique, exhibits very significant improvements over previous dispatching techniques, not only in terms of the time for creating the underlying data structure, but also in terms of total space used. The cost is in the dispatching time, which is no longer constant, but doubly logarithmic in the number of types. Conversely, by using a simple binary search, dispatching time is logarithmic in the number of different implementations. In practice dispatching uses one indirect branch and, on average, only 2.5 binary branches. Our results also have applications to the space-efficient implementation of the more general problem of dispatching multi-methods. A by-product of our type slicing technique is an incremental algorithm for constant-time subtyping tests with favorable memory requirements. (The incremental version of the subtyping problem is to maintain the subtyping data structure in presence of additions of types to the inheritance hierarchy.)

Citations

182 Smalltalk-80: The Interactive Programming Environment – Goldberg - 1983
115 Tarjan, Scaling and related techniques for geometry problems – Gabow, Bentley, et al. - 1984
104 Optimizing Dynamically-Typed ObjectOriented Languages With Polymorphic Inline Caches – Hölzle, Chambers, et al. - 1991
104 Efficient Implementation of Lattice Operations – Aït-Kaci, Boyer, et al. - 1989
38 Efficient Method Dispatch in PCL – Kiczales, Rodriguez - 1989
11 Multi-method dispatching: a geometric approach with applications to string matching – Ferragina, Muthukrishnan, et al. - 1999
11 The complexity of type analysis of Object Oriented programs – Gil, Itai - 1998
7 Efficient dynamic method-lookup for object oriented languages – Ferragina, Muthukrishnan - 1996
7 Bit-vector encoding for partially ordered sets – Habib, Nourine - 1994
7 Multi-method dispatch using single-receiver projections – Holst, Szafron, et al. - 1998
6 Sparse term encoding for dynamic taxonomies – Fall - 1996
4 time-efficient memory layout for multiple inheritance – Space- - 1999
3 Efficient Compression of Generic Function Dispatch Tables – Kidd - 2001