Java Generics: An Order-Theoretic Approach (Detailed Outline)

05/23/2019
by   Moez A. AbdelGawad, et al.
0

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
research
06/20/2019

Java Generics: An Order-Theoretic Approach (Abridged Outline)

The mathematical modeling of generics in Java and other similar nominall...
research
06/12/2019

Using Category Theory in Modeling Generics in OOP (Outline)

Modeling generics in object-oriented programming languages such as Java ...
research
09/23/2017

Novel Uses of Category Theory in Modeling OOP

An outline and summary of four new potential applications of category th...
research
06/01/2017

Towards a Java Subtyping Operad (extended version)

The subtyping relation in Java exhibits self-similarity. The self-simila...
research
06/01/2017

Towards a Java Subtyping Operad

The subtyping relation in Java exhibits self-similarity. The self-simila...
research
05/18/2018

Java Subtyping as an Infinite Self-Similar Partial Graph Product

Due to supporting variance annotations, such as wildcard types, the subt...
research
12/25/2018

Induction, Coinduction, and Fixed Points: A Concise Comparative Survey

In this survey article (which hitherto is an ongoing work-in-progress) w...

Please sign up or login with your details

Forgot password? Click here to reset