Results 1 -
6 of
6
Java Multi-Method Framework
, 2000
"... In Java, method resolution is done at runtime, by late-binding, with respect to the dynamic type of the target object. Some object-oriented languages such as CLOS propose, in addition, late-binding according to dynamic types of arguments. This feature is known as multi-polymorphism and usually achie ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
In Java, method resolution is done at runtime, by late-binding, with respect to the dynamic type of the target object. Some object-oriented languages such as CLOS propose, in addition, late-binding according to dynamic types of arguments. This feature is known as multi-polymorphism and usually achieved by multi-methods. In this paper, we propose a pure Java framework that provides multi-methods, without extending the base Java language nor modifying its semantics but intensively using the reflection mechanism of the language. This paper focus on the algorithms and the data structures involved in the method resolution strategy we have implemented in an optional package called Java Multi Method Framework.
Digging into the Visitor Pattern
- Proc. IEEE 16th Int. Conf. Software Engineering and Knowlege Engineering (SEKE’2004). IEEE, Los Alamitos
, 2004
"... In this paper we present an alternative to the VISITOR pattern, DYNAMIC DISPATCHER, that can be applied to extend existing software in a nonintrusive way, and which simulates covariant overriding of visit methods. It allows to express polymorphic operations through visitor classes in a more natural ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
In this paper we present an alternative to the VISITOR pattern, DYNAMIC DISPATCHER, that can be applied to extend existing software in a nonintrusive way, and which simulates covariant overriding of visit methods. It allows to express polymorphic operations through visitor classes in a more natural way than the original VISITOR pattern. Our solution DYNAMIC DISPATCHER can be applied without touching existing domain classes. Therefore, it is especially useful to extend frameworks and libraries. We have implemented DYNAMIC DISPATCHER as a small framework in Java and conducted performance measurements which show that the overhead is acceptable in most real world scenarios.
MCI-Java: A Modified Java Virtual Machine Approach to Multiple Code Inheritance
- In 3rd Virtual Machine Research and Technology Symposium Usenix VM ’04 Conference Proceedings
, 2004
"... Java has multiple inheritance of interfaces, but only single inheritance of code via classes. This situation results in duplicated code in Java library classes and application code. We describe a generalization to the Java language syntax and the Java Virtual Machine (JVM) to support multiple inheri ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Java has multiple inheritance of interfaces, but only single inheritance of code via classes. This situation results in duplicated code in Java library classes and application code. We describe a generalization to the Java language syntax and the Java Virtual Machine (JVM) to support multiple inheritance of code, called MCI-Java. Our approach places multiply-inherited code in a new language construct called an implementation, which lies between an interface and a class in the inheritance hierarchy. MCI-Java does not support multiply-inherited data, which can cause modeling and performance problems. The MCI-Java extension is implemented by making minimal changes to the Java syntax, small changes to a compiler (IBM Jikes), and modest localized changes to a JVM (SUN JDK 1.2.2). The JVM changes result in no measurable performance overhead in real applications. 1
Multiple Code Inheritance in Java
, 2003
"... single copies of this thesis and to lend or sell such copies for private, scholarly or scientific research purposes only. The author reserves all other publication and other rights in association with the copyright in the thesis, and except as herein before provided, neither the thesis nor any subst ..."
Abstract
- Add to MetaCart
single copies of this thesis and to lend or sell such copies for private, scholarly or scientific research purposes only. The author reserves all other publication and other rights in association with the copyright in the thesis, and except as herein before provided, neither the thesis nor any substantial portion thereof may be printed or otherwise reproduced in any material form whatever without the author’s prior written permission. Date:
Multiple Code Inheritance in Java
, 2003
"... Java has multiple-inheritance of interfaces, but only singleinheritance of code. This situation results in duplicated code in Java library classes and application code. This paper describes a generalization to the Java Virtual Machine (JVM) to support multiple-inheritance of code. Our approach p ..."
Abstract
- Add to MetaCart
Java has multiple-inheritance of interfaces, but only singleinheritance of code. This situation results in duplicated code in Java library classes and application code. This paper describes a generalization to the Java Virtual Machine (JVM) to support multiple-inheritance of code. Our approach places code in interfaces. This extension can be implemented by adding a small amount of code to a few locations in a JVM. Furthermore, a set of simple scripts allows a programmer to use multiple code inheritance with existing javac compilers. Word Count = 9,273 1
Co-Supervisor
"... Permission is hereby granted to the University of Alberta Library to reproduce single copies of this thesis and to lend or sell such copies for private, scholarly or scientific research purposes only. The author reserves all other publication and other rights in association with the copyright in the ..."
Abstract
- Add to MetaCart
Permission is hereby granted to the University of Alberta Library to reproduce single copies of this thesis and to lend or sell such copies for private, scholarly or scientific research purposes only. The author reserves all other publication and other rights in association with the copyright in the thesis, and except as herein before provided, neither the thesis nor any substantial portion thereof may be printed or otherwise reproduced in any material form whatever without the author’s prior written permission.

