Optimizing multi-method dispatch using compressed dispatch tables
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Theory and Practice of Object Systems - Special issue: type systems
An introduction to object-oriented programming (2nd ed.)
An introduction to object-oriented programming (2nd ed.)
Parasitic methods: an implementation of multi-methods for Java
Proceedings of the 12th ACM SIGPLAN 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)
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficient multiple and predicated dispatching
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Java Virtual Machine Specification
Java Virtual Machine Specification
Jfc Swing Components: A Tutorial Guide for Constructing GUIs with Cdrom
Jfc Swing Components: A Tutorial Guide for Constructing GUIs with Cdrom
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
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
Compact Dispatch Tables for Dynamically Typed Object Oriented Languages
CC '96 Proceedings of the 6th International Conference on Compiler Construction
The tension between expressive power and method-dispatch efficiency in object-oriented languages
The tension between expressive power and method-dispatch efficiency in object-oriented languages
A quantitative analysis of the performance impact of specialized bytecodes in java
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
A Reflective Implementation of Java Multi-Methods
IEEE Transactions on Software Engineering
Software—Practice & Experience - Research Articles
MultiJava: Design rationale, compiler implementation, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
MCI-java: a modified java virtual machine approach to multiple code inheritance
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
Featherweight Java with multi-methods
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Featherweight Java with dynamic and static overloading
Science of Computer Programming
Translating Double Dispatch into Single Dispatch
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Mainstream object-oriented languages, such as C++ and Java, provide only a restricted form of polymorphic methods, namely uni-receiver dispatch. In common programming situations, developers must work around this limitation. We describe how to extend the Java Virtual Machine to support multi-dispatch and examine the complications that Java imposes on multidispatch in practice. Our technique avoids changes to the Java programming language itself, maintains source code and library compatibility, and isolates the performance penalty and semantic changes of multimethod dispatch to the program sections which use it. We have micro-benchmark and application-level performance results for a dynamic Most Specific Applicable (MSA) dispatcher, a framework-based Single Receiver Projections (SRP) dispatcher, and a tuned SRP dispatcher. Our general-purpose technique provides smaller dispatch latency than programmer-written double-dispatch code with equivalent functionality.