A simple technique for handling multiple polymorphism
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Efficient method dispatch in PCL
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Static type checking of multi-methods
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Optimizing multi-method dispatch using compressed dispatch tables
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Minimizing row displacement dispatch tables
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Fast algorithms for compressed multimethod dispatch table generation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient message dispatch in object-oriented systems
ACM SIGPLAN Notices
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Efficient Dynamic Look-Up Strategy for Multi-Methods
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Multi-method Dispatch Using Multiple Row Displacement
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Efficient Dynamic Method-Lookup for Object Oriented Languages (Extended Abstract)
ESA '96 Proceedings of the Fourth Annual European Symposium on Algorithms
Realization of multimethods in single dispatch object oriented languages
ACM SIGPLAN Notices
Multiple dispatch in reflective runtime environment
Computer Languages, Systems and Structures
Hi-index | 0.01 |
Multi-method dispatch in object oriented programs provides additional expressibility, readability and elegance over single dispatch languages. Optimizing multi-method dispatch is a central issue in compilers that support multi-methods. Existing constant time dispatch techniques for multi-methods keep either a lookup table or a lookup tree after compressing the same, the size of which can still be large if compression is not effective. In this paper, we propose a space efficient non-constant time technique (each method address should be computed - rather than being looked up) for multi-method dispatch with single inheritance type hierarchies. The method table containing all the multi-method signatures is the only data structure kept at run time. The table is arranged by sorting on argument position to expedite method search during dispatch. Heuristics is used during method search such that those methods which are not potential candidates are not included in the search. The proposed technique saves space significantly while the dispatch time grew higher compared to existing techniques. When multi-method counts were within practical bounds, the proposed technique was found to offer dispatch time similar to existing techniques.