A simple technique for handling multiple polymorphism
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Concepts and experiments in computational reflection
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Computational reflection in class based object-oriented languages
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Optimizing multi-method dispatch using compressed dispatch tables
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
The design and evolution of C++
The design and evolution of C++
An introduction to object-oriented programming (2nd ed.)
An introduction to object-oriented programming (2nd ed.)
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
Non-restrictive computational reflection
Computer Standards & Interfaces - Special issue: Adaptable software architectures
Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
MetaJava: an efficient run-time meta architecture for Java/sup TM/
IWOOOS '96 Proceedings of the 5th International Workshop on Object Orientation in Operating Systems (IWOOOS '96)
Multiple dispatch in reflective runtime environment
Computer Languages, Systems and Structures
Making generic functions useable in Smalltalk
ACM-SE 45 Proceedings of the 45th annual southeast regional conference
Featherweight Java with dynamic and static overloading
Science of Computer Programming
Space efficient non-constant time multi-method dispatch in object oriented systems
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
The need for multimethods is preeminent in the domain of object-oriented programming. However, multimethods are far from universally acknowledged. Commonly used languages - C++, Java & C# - are single dispatching languages. In this paper, we demonstrate the alternatives for multimethods in such languages. The techniques discussed, in this paper, include double dispatching (a well known technique), technique of message dispatching using RTTI (explored in detail by us in this paper), and reflection (a feature provided by some compilers). We implement these techniques for C++, Java and C# languages and discuss issues associated with encapsulating multimethods in single dispatch languages. We also compare techniques in terms of their efficiency, ease of (re)use and type safety.