Java Subtyping as an Infinite Self-Similar Partial Graph Product

May 18, 2018 Β· Declared Dead Β· πŸ› arXiv.org

πŸ‘» CAUSE OF DEATH: Ghosted
No code link whatsoever

"No code URL or promise found in abstract"

Evidence collected by the PWNC Scanner

Authors Moez A. AbdelGawad arXiv ID 1805.06893 Category cs.PL: Programming Languages Citations 12 Venue arXiv.org Last Checked 3 months ago
Abstract
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, i.e., ones with no type variables, is the basis for defining the full OO subtyping relation, i.e., that includes type variables. As an ordering relation over the set of types, the subtyping relation in object-oriented programming languages can always be represented as a directed graph. In order to better understand some of the subtleties of the subtyping relation in Java, in this paper we present how the subtyping relation between ground Java types can be precisely constructed using two new operations (a binary operation and a unary one) 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 graph operations in constructing the ground generic Java subtyping relation reveals some of the not-immediately-obvious structure of the subtyping relation not only in Java but, more generally, also in mainstream generic nominally-typed OO programming languages such as C#, Scala and Kotlin. Accordingly, we believe that describing precisely how graph operations can be used to explicitly construct the subtyping relation in these languages, as we do in this paper, may significantly improve our understanding of features of the type systems of these languages such as wildcard types and variance annotations, and of the dependency of these features on nominal subtyping in nominally-typed OOP.
Community shame:
Not yet rated
Community Contributions

Found the code? Know the venue? Think something is wrong? Let us know!

πŸ“œ Similar Papers

In the same crypt β€” Programming Languages

Died the same way β€” πŸ‘» Ghosted