MCI-java: a modified java virtual machine approach to multiple code inheritance

  • Authors:
  • Maria Cutumisu;Calvin Chan;Paul Lu;Duane Szafron

  • Affiliations:
  • Department of Computing Science, University of Alberta;Department of Computing Science, University of Alberta;Department of Computing Science, University of Alberta;Department of Computing Science, University of Alberta

  • Venue:
  • VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.