Corpus ID: 14328819

Towards an Accurate Mathematical Model of Generic Nominally-Typed OOP

@article{AbdelGawad2016TowardsAA,
  title={Towards an Accurate Mathematical Model of Generic Nominally-Typed OOP},
  author={Moez A. AbdelGawad},
  journal={ArXiv},
  year={2016},
  volume={abs/1610.05114}
}
The construction of GNOOP as a domain-theoretic model of generic nominally-typed OOP is currently underway. This extended abstract presents the concepts of `nominal intervals' and `full generication' that are likely to help in building GNOOP as an accurate mathematical model of generic nominally-typed OOP. The abstract also presents few related category-theoretic suggestions. The presented concepts and suggestions are particularly geared towards enabling GNOOP to offer a precise and simple view… Expand
Towards an Order and Category Theoretic Model of Java Generics (extended version)
TLDR
An order-theoretic and latticetheoretic approach to modeling generics in nominally-typed OOP type systems that aims to build a simpler and more intuitive model than the extant “existentials-based” model. 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
Towards Taming Java Wildcards and Extending Java with Interval Types
TLDR
This work builds on the concurrent work, in which it is suggested how wildcard types in Java can be generalized, and simplified, to interval types, to suggest how interval types correspond to endpoints of paths in the Java subtyping graph. Expand
Towards a Java Subtyping Operad
TLDR
This paper explores defining an operad to model the construction of the subtyping relation in Java and hopes it will shed more light on understanding the type systems of generic nominally-typed OO languages. Expand
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
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
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
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
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
Category Theory for Modeling OOP
An outline and summary of four new applications of category theory to OOP research are presented.

References

SHOWING 1-10 OF 45 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
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
Towards a semantic model for Java wildcards
TLDR
A semantic model for Java wildcards is proposed, inspired by work on semantic subtyping, and is defined in terms of runtime types rather than the structure of the runtime values themselves, to reflect the variance introduced by wildcards. Expand
Lightweight, flexible object-oriented generics
TLDR
An expressive genericity mechanism is introduced that adds expressive power and strengthens static checking, while remaining lightweight and simple in common use cases and it is shown that common generic programming idioms, including current generic libraries, can be expressed more precisely and concisely. Expand
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
A Model for Java with Wildcards
TLDR
This paper establishes that Java wildcards are type sound, and describes a new formal model based on explicit existential types whose pack and unpack operations are handled implicitly, and proves it type sound. 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
Compatible genericity with run-time types for the Java programming language
TLDR
This paper explains how to support general type parameterization---including both non-variant and covariant subtyping---on top of the existing Java Virtual Machine at the cost of a larger code footprint and the forwarding of some method calls involving parameterized classes and methods. 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
...
1
2
3
4
5
...