MCI-Java: A Modified Java Virtual Machine Approach to

Multiple Code Inheritance

Maria Cutumisu, Calvin Chan, Paul Lu, Duane Szafron

Multiple Inheritance

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. 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. This 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).

Our Modified Multiple Inheritance Compiler (mcijavac)

Our Modified Multiple Inheritance JVM (mcijava)

Multiple Code Inheritance Scenarios (scenarios.tar.gz)