CommonLoops: merging Lisp and object-oriented programming
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Abstract data types with shared operations
ACM SIGPLAN Notices
Fast dispatch mechanisms for stock hardware
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Designing families of data types using exemplars
ACM Transactions on Programming Languages and Systems (TOPLAS)
Polymorphism and type checking in object-oriented languages
ACM SIGPLAN Notices
CLOS: integrating object-oriented and functional programming
Communications of the ACM - Special issue on LISP
Static type checking of multi-methods
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Eoops: an object-oriented programming system for Emacs-Lisp
ACM SIGPLAN Lisp Pointers
Optimizing multi-method dispatch using compressed dispatch tables
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Selective specialization for object-oriented languages
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Sound polymorphic type inference for objects
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
A framework for network protocol software
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Parametric polymorphism for Java: a reflective solution
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Multiple dispatch as dispatch on Tuples
Proceedings of the 13th 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
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An Operational Approach to the Semantics of Classes: Application to Type Checking
Programming and Computing Software
Object-oriented symbol management in syntax-directed compiler systems
ACM SIGPLAN Notices
Message Dispatch on Pipelined Processors
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
The Translator Pattern - External Functionality with Homomorphic Mappings
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Realization of multimethods in single dispatch object oriented languages
ACM SIGPLAN Notices
Arithmetic with measurements on dynamically-typed object-oriented languages
OOPSLA '05 Companion to 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)
Polymorphic variants in Haskell
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Multiple dispatch in reflective runtime environment
Computer Languages, Systems and Structures
Kawa: compiling dynamic languages to the Java VM
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Featherweight Java with multi-methods
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Object-oriented description of graph data structures
Programming and Computing Software
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Systematically refactoring inheritance to delegation in java
Proceedings of the 30th international conference on Software engineering
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
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
X-expressions in XMLisp: S-expressions and extensible markup language unite
Proceedings of the 2007 International Lisp Conference
Implementation of a Modelica compiler using JastAdd attribute grammars
Science of Computer Programming
Translating Double Dispatch into Single Dispatch
Electronic Notes in Theoretical Computer Science (ENTCS)
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Space efficient non-constant time multi-method dispatch in object oriented systems
ACM SIGSOFT Software Engineering Notes
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
Checking the consistency of UML class diagrams using larch prover
ROOM'00 Proceedings of the 2000 international conference on Rigorous Object-Oriented Methods
Extensible intraprocedural flow analysis at the abstract syntax tree level
Science of Computer Programming
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
Certain situations arise in programming that lead to multiply polymorphic expressions, that is, expressions in which several terms may each be of variable type. In such situations, conventional object-oriented programming practice breaks down, leading to code which is not properly modular. This paper describes a simple approach to such problems which preserves all the benefits of good object-oriented programming style in the face of any degree of polymorphism. An example is given in Smalltalk-80 syntax, but the technique is relevant to all object-oriented languages.