Proceedings Article10.1145/582419.582434
Fast algorithm for creating space efficient dispatching tables with application to multi-dispatching
Yoav Zibin,Joseph Gil +1 more
- 04 Nov 2002
- Vol. 37, Iss: 11, pp 142-160
33
TL;DR: This paper shows how to extend one such solution to the multiple-inheritance~(MI) setting, with an increase to the space requirement by a small factor of κ, which can be thought of as a metric of the complexity of the topology of the inheritance hierarchy.
read more
Abstract: The dispatching problem can be solved very efficiently in the single-inheritance~(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.)
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Scaling J2EE™ application servers with the multi-tasking virtual machine
TL;DR: The Multi-tasking Virtual Machine (MVM) solves the problem of proliferation of server instances by providing an efficient and scalable implementation of the isolate API for multiple, isolated tasks, enabling the co-location of multiple server instances in a single MVM process.
Multiple dispatch in practice
Radu Muschevici,Alex Potanin,Ewan Tempero,James Noble +3 more
- 19 Oct 2008
TL;DR: An empirical study of the use of multiple dispatch in practice is presented, considering six languages that support multiple dispatch, and also investigating the potential for several dispatch in Java programs.
61
Model replication: transformations to address model scalability
Yuehua Lin,Jeff Gray,Jing Zhang,Steve Nordstrom,Aniruddha Gokhale,Sandeep Neema,Swapna S. Gokhale +6 more
TL;DR: The idea of automated model replication through a model transformation process that expands the number of elements from the base model and makes the correct connections among the generated modeling elements is presented.
46
Walkabout Revisited: The Runabout
Christian Grothoff
- 21 Jul 2003
TL;DR: A variation of the visitor pattern which allows programmers to write visitor-like code in a concise way is presented which can be significantly faster than existing implementations of multiple dispatch for Java, such as MultiJava.
44
Implementing statically typed object-oriented programming languages
TL;DR: This article reviews the various implementation techniques available in static typing and in the three cases of single inheritance, multiple inheritance, and multiple subtyping, and presents an experimental compiler-linker, where separate compilation implies the OWA, whereas the whole program is finally linked under the CWA.
References
•Book
The C++ Programming Language
Bjarne Stroustrup
- 01 Jan 1985
TL;DR: Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.
8.1K
Testing for the consecutive ones property, interval graphs, and graph planarity using PQ-tree algorithms
TL;DR: The consecutive ones test for the consecutive ones property in matrices and for graph planarity is extended to a test for interval graphs using a recently discovered fast recognition algorithm for chordal graphs.
1.7K
•Book
Object-oriented programming ; an evolutionary approach
Brad Cox,Andrew J. Novobilski +1 more
- 01 Jan 1986
TL;DR: The author describes the development of an object-oriented C language compiler, and how it can be put to work.
1K
•Book
The Annotated C++ Reference Manual
Margaret A. Ellis,Bjarne Stroustrup +1 more
- 01 Jan 1990
TL;DR: This chapter discusses the evolution of C++ and ANSI C, a standards-based programming language, and its applications in the rapidly changing environment, as well as some of the techniques used to design and implement these systems.
Efficient implementation of the smalltalk-80 system
L. Peter Deutsch,Allan M. Schiffman +1 more
- 15 Jan 1984
TL;DR: The most significant optimization techniques developed over the course of the Smalltalk-80 programming system are discussed, many of which are applicable to other languages.
659