LCS Publication Details
Publication Title: Inference of Generic Types in Java
Publication Author: Donnvan, Alan
Additional Authors: Michael D. Ernst
LCS Document Number: MIT-LCS-TR-889
Publication Date: 3-22-2003
LCS Group: Program Analysis
Additional URL:
Future versions of Java will include support for parametric polymorphism, or generic classes. This will bring many benefits to Java programmers, not least because current Java practise makes heavy use of pseudo-generic classes. Such classes (for example, those in package java.util) have logically generic specifications and documentation, but the type system cannot prove their patterns of use to be safe. This work aims to solve the problem of automatic translation of Java source code into Generic Java (GJ) source code. We present two algorithms that together can be used to translate automatically a Java source program into a semantically-equivalent GJ program with generic types. The first algorithm infers a candidate generalisation for any class, based on the methods of that class in isolation. The second algorithm analyses the whole program; it determines a precise parametric type for every value in the program. Optionally, it also refines the generalisations produced by the first analysis as required by the patterns of use of those classes in client code.
To obtain this publication:

To purchase a printed copy of this publication please contact MIT Document Services.