Java Subtyping as an Infinite Self-Similar Partial Graph Product

05/18/2018
by   Moez A. AbdelGawad, et al.
0

Due to supporting variance annotations, such as wildcard types, the subtyping relation in Java and other generic nominally-typed OO programming languages is both interesting and intricate. In these languages, the subtyping relation between ground object types (ones with no type variables) is the basis for defining the full OO subtyping relation (i.e., that includes type variables). In this paper we present how the subtyping relation between ground Java types can be precisely constructed using a binary operation on directed graphs. The binary operation we use, called a partial Cartesian graph product, is similar in its essence to standard graph products and group products. Its definition is based in particular on that of the standard Cartesian graph product. We believe the use of this graph operation in constructing the ground generic Java subtyping relation reveals some of the not-immediately-obvious structure of the subtyping relation in generic nominally-typed OO programming languages. Accordingly, we believe that describing precisely how this graph operation is used to construct the subtyping relation of these languages, as we do in this paper, may significantly improve our understanding of wildcard types and variance annotations in those languages.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/01/2017

Towards a Java Subtyping Operad

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

Partial Cartesian Graph Product

In this paper we define a new product-like binary operation on directed ...
research
05/18/2018

Towards Taming Java Wildcards and Extending Java with Interval Types

Of the complex features of generic nominally-typed OO type systems, wild...
research
06/01/2017

Towards a Java Subtyping Operad (extended version)

The subtyping relation in Java exhibits self-similarity. The self-simila...
research
05/23/2019

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

Generics have been added to Java so as to increase the expressiveness of...
research
06/20/2019

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

The mathematical modeling of generics in Java and other similar nominall...
research
05/23/2016

The bitwise operations in relation to obtaining Latin squares

The main thrust of the article is to provide interesting example, useful...

Please sign up or login with your details

Forgot password? Click here to reset