The Common Lisp object system: an overview
European conference on object-oriented programming on ECOOP '87
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
Static type checking of multi-methods
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Building an object-oriented database system: the story of 02
Building an object-oriented database system: the story of 02
The design and evolution of C++
The design and evolution of C++
A calculus for overloaded functions with subtyping
Information and Computation
Typechecking and modules for multimethods
ACM Transactions on Programming Languages and Systems (TOPLAS)
Theory and Practice of Object Systems - Special issue: type systems
Object-oriented programming: a unified foundation
Object-oriented programming: a unified foundation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pizza into Java: translating theory into practice
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Java Language Specification
The Java Language Specification
Multi-Methods in a Statically-Typed Programming Language
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Type-Safe Compilation of Covariant Specialization: A Practical Case
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Multiple dispatch as dispatch on Tuples
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Multi-method dispatching: a geometric approach with applications to string matching problems
STOC '99 Proceedings of the thirty-first annual ACM symposium on Theory of computing
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
Multi-dispatch in the Java Virtual Machine (poster session): design and implementation
OOPSLA '00 Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On type systems for object-oriented database programming languages
ACM Computing Surveys (CSUR)
An Operational Approach to the Semantics of Classes: Application to Type Checking
Programming and Computing Software
Recursive Types and Pattern-Matching in Java
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
Modular Statically Typed Multimethods
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
The Integrated Delivery of Large-Scale Data Mining: The ACSys Data Mining Project
Revised Papers from Large-Scale Parallel Data Mining, Workshop on Large-Scale Parallel KDD Systems, SIGKDD
CDuce: an XML-centric general-purpose language
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Relaxed MultiJava: balancing extensibility and modular typechecking
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A Reflective Implementation of Java Multi-Methods
IEEE Transactions on Software Engineering
Reflection-based implementation of Java extensions: the double-dispatch use-case
Proceedings of the 2005 ACM symposium on Applied computing
PolyD: a flexible dispatching framework
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Software—Practice & Experience - Research Articles
MultiJava: Design rationale, compiler implementation, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
A provenly correct translation of Fickle into Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Multi-dispatch in the Java virtual machine: design and implementation
COOTS'01 Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6
COOTS'01 Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
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
Expressive and modular predicate dispatch for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Featherweight Java with dynamic and static overloading
Science of Computer Programming
Symmetric encapsulated multi-methods to abstract over application structure
Proceedings of the 2009 ACM symposium on Applied Computing
Is Structural Subtyping Useful? An Empirical Study
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
CZ: multiple inheritance without diamonds
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Translating Double Dispatch into Single Dispatch
Electronic Notes in Theoretical Computer Science (ENTCS)
Design and evaluation of C++ open multi-methods
Science of Computer Programming
A safe implementation of dynamic overloading in java-like languages
FSEN'09 Proceedings of the Third IPM international conference on Fundamentals of Software Engineering
Efficient multimethods in a single dispatch language
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Abstraction over implementation structure with symmetrically encapsulated multimethods
Science of Computer Programming
Hi-index | 0.00 |
In an object-oriented programming language, method selection is (usually) done at run-time using the class of the receiver. Some object-oriented languages (such as CLOS) have multi-methods which comprise several methods selected on the basis of the runtime classes of all the parameters, not just the receiver. Multi-methods permit intuitive and typesafe definition of binary methods such as structural equality, set inclusion and matrix multiplication, just to name a few. Java as currently defined does not support multimethods. This paper defines a simple extension to Java that enables the writing of "encapsulated" multi-methods through the use of parasitic methods, methods that "attach" themselves to other methods. Encapsulated multi-methods avoid some of the modularity problems that, arise with fully general multi-methods. Furthermore, this. extension yields for free both covariant and contravariant specialization of methods (besides Java's current invariant specialization).Programs using this extension. can be translated automatically at the source level into programs that do not; they are modular, type-safe, and allow separate compilation.