Corpus ID: 2510938

Towards Understanding Generics

@article{AbdelGawad2016TowardsUG,
  title={Towards Understanding Generics},
  author={Moez A. AbdelGawad},
  journal={ArXiv},
  year={2016},
  volume={abs/1605.01480}
}
This article reports on steps towards building a simple and accurate domain-theoretic model of generic nominally-typed OOP. 
Category Theory for Modeling OOP
An outline and summary of four new applications of category theory to OOP research are presented.
Partial Cartesian Graph Product (and its use in modeling Java subtyping)
In this paper we define a new product-like binary operation on directed graphs, and we discuss some of its properties. We also briefly discuss its application in constructing the subtyping relationExpand
Novel Uses of Category Theory in Modeling OOP
TLDR
Four new potential applications of category theory to OOP research are presented and the use of operads to model Java subtyping, Yoneda's lemma, representable functors and adjoint functors are used. Expand
Towards an Accurate Mathematical Model of Generic Nominally-Typed OOP
TLDR
The concepts of `nominal intervals' and `full generication' are presented that are likely to help in building GNOOP as an accurate mathematical model of generic nominally-typed OOP. Expand
Partial Cartesian Graph Product
TLDR
A new product-like binary operation on directed graphs is defined, and some of its properties are discussed, and its application in constructing the subtyping relation in generic nominally-typed object-oriented programming languages is discussed. Expand
Java Generics: An Order-Theoretic Approach (Abridged Outline)
TLDR
This short paper presents the outline of a novel order-theoretic approach to modeling generics, in which some concepts and tools from category theory are elementarily used. Expand
Why Nominal-Typing Matters in Object-Oriented Programming
TLDR
These comparisons provide a clear and deep account for the relation between nominal and structural OO type systems that has not been presented before, and they help demonstrate the key value of nominal typing and nominal subtyping to OO developers and language designers. Expand
Java Subtyping as an Infinite Self-Similar Partial Graph Product
TLDR
This paper presents how the subtyping relation between ground Java types can be precisely constructed using a binary operation on directed graphs, based in particular on that of the standard Cartesian graph product. Expand
Why Nominal-Typing Matters in Mainstream OOP
In 1990, Cook et al. shocked the programming languages (PL) research community by declaring that, in object-oriented programming, ‘inheritance is not subtyping,’ meaning there is no one-to-oneExpand
Subtyping in Java with Generics and Wildcards is a Fractal
TLDR
The fractal observation may help OO software developers keep a useful and intuitive mental image of their software's subtyping relation, even if it is a little more frightening, and more amazing one than before. Expand

References

SHOWING 1-10 OF 20 REFERENCES
A Comparison of NOOP to Structural Domain-Theoretic Models of Object-Oriented Programming
TLDR
This paper compares NOOP to the most widely known domain-theoretic models of OOP, namely, the models developed by Cardelli and Cook, which were structurally-typed models. Expand
A Domain-Theoretic Model Of Nominally-Typed Object-Oriented Programming
TLDR
The construction of NOOP is summarized, in full agreement with intuitions of OO developers using these languages, and contrary to the belief that ''inheritance is not subtyping'', which came from assuming non-nominal structural models ofOO type systems. Expand
Why Nominal-Typing Matters in OOP
TLDR
These comparisons provide a clear and deep account for the relation between nominal and structural OO type systems that has not been presented before, and they help demonstrate the key value of nominal typing and nominal subtyping to OO developers and language designers. Expand
NOOP: A Nominal Mathematical Model of Object-Oriented Programming
TLDR
The construction of NOOP is presented as the first domain-theoretic model of OOP to include nominal information found in nominally-typed mainstream OO software, proving that inheritance and subtyping are completely identified in these languages. Expand
On Variance-Based Subtyping for Parametric Types
We develop the mechanism of variant parametric types, inspired by structural virtual types by Thorup and Torgersen, as a means to enhance synergy between parametric and inclusive polymorphism inExpand
Domain Theory for Modeling OOP: A Summary
TLDR
The definitions of basic domain theoretic notions and domain constructors used in the construction of NOOP are presented, and a simple structural model of OOP called COOP is presented as a step towards the constructionof NOOP. Expand
A first-class approach to genericity
TLDR
This paper describes how to add first-class generic types---including mixins---to strongly-typed OO languages with nominal subtyping such as Java and C# and develops a practical implementation strategy for this extension that can be added to the existing Java language without any change to the underlying Java Virtual Machine. Expand
Inheritance Is Subtyping
Since Luca Cardelli wrote a seminal paper [3] on the semantics of inheritance in 1984, programming language researchers have constructed a variety of structural models of object-oriented programmingExpand
Adding wildcards to the Java programming language
TLDR
By means of a novel notion of wildcard capture, polymorphic methods can be used to give symbolic names to unspecified types, in a manner similar to the "open" construct known from existential types, allowing for an improved type inference scheme for polymorphic method calls. Expand
Featherweight Java: a minimal core calculus for Java and GJ
TLDR
A proof of type safety for Featherweight Java illustrates many of the interesting features of a safety proof for the full language, while remaining pleasingly compact. Expand
...
1
2
...