Better genericity for Java-like programs

Most mainstream object-oriented languages, including Java, C++ and C#, use generics to support container classes such as linked lists, hash tables or vectors. In this project, we designed a type system for capturing precise types for container classes used in Java programs [1] We developed a prototype system and applied it to a suite of Java applications. Our system proved safe more downcast operations than when using the type system from the standard distribution of the Java 1.5 compiler. The type-based analysis relies on a core Java language with multiple inheritance, imperative assignments and exceptions introduced in [2].

  1. OOPSLA 2006 A Flow-Based Approach for Variant Parametric Types (pdf)
  2. OOPSLA-companion 2006 Core-Java: An Expression-Oriented Java (pdf)

The lead of this project is Florin Craciun, these papers constitute the topic of his PhD thesis carried at the National University of Singapore under the supervision of Wei-Ngan Chin. The paper [1] is co-authored with Siau-Cheng Khoo. The paper [2] is co-authored with Hong Yaw Goh.