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].
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.