Java Generics: An Order-Theoretic Approach (Detailed Outline)
Generics have been added to Java so as to increase the expressiveness of its type system. Generics in Java, however, include some features—such as Java wildcards, F-bounded generics, and Java erasure—that have been hard to analyze and reason about so far, reflecting the fact that the mathematical modeling of generics in Java and other similar nominally-typed object-oriented programming (OOP) languages is a challenge. As a result, the type systems of mainstream nominally-typed OOP languages, which are built based on current models of generics, are overly complex, which hinders the progress of these type systems. In this paper we present a detailed outline of a new approach to modeling Java generics that uses concepts and tools from order theory, and we report on our progress in developing this approach. Fundamentally, we use the nominal subclassing relation (as a partial order) together with some standard and novel order-theoretic tools to construct the generic nominal subtyping relation (as a partial order) and the containment relation between generic type arguments (a third partial order). We further analyze the relation between these three ordering relations—which lie at the heart of mainstream generic OO type systems—using order theoretic tools, and accordingly we explore extensions of OO type systems suggested by such analysis. In our approach we also make use of some concepts and tools from category theory. We believe a combined order-theoretic and category-theoretic approach to modeling generics holds the keys to overcoming much of the adversity found when analyzing features of generic OO type systems.
READ FULL TEXT