Towards a Java Subtyping Operad

06/01/2017
by   Moez A. AbdelGawad, et al.
0

The subtyping relation in Java exhibits self-similarity. The self-similarity in Java subtyping is interesting and intricate due to the existence of wildcard types and, accordingly, the existence of three subtyping rules for generic types: covariant subtyping, contravariant subtyping and invariant subtyping. Supporting bounded type variables also adds to the complexity of the subtyping relation in Java and in other generic nominally-typed OO languages such as C# and Scala. In this paper we explore defining an operad to model the construction of the subtyping relation in Java and in similar generic nominally-typed OO programming languages. Operads, from category theory, are frequently used to model self-similar phenomena. The Java subtyping operad, we hope, will shed more light on understanding the type systems of generic nominally-typed OO languages.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/01/2017

Towards a Java Subtyping Operad (extended version)

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
05/18/2022

Global Type Inference for Featherweight Generic Java

Java's type system mostly relies on type checking augmented with local t...
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
05/23/2016

The bitwise operations in relation to obtaining Latin squares

The main thrust of the article is to provide interesting example, useful...
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
05/19/2010

Groebner bases in Java with applications in computer graphics

In this paper we present a Java implementation of the algorithm that com...

Please sign up or login with your details

Forgot password? Click here to reset