Corpus ID: 845703

A Comparison of NOOP to Structural Domain-Theoretic Models of Object-Oriented Programming

@article{AbdelGawad2016ACO,
  title={A Comparison of NOOP to Structural Domain-Theoretic Models of Object-Oriented Programming},
  author={Moez A. AbdelGawad},
  journal={ArXiv},
  year={2016},
  volume={abs/1603.08648}
}
Mainstream object-oriented programming languages such as Java, C#, C++ and Scala are all almost entirely nominally-typed. NOOP is a recently developed domain-theoretic model of OOP that was designed to include full nominal information found in nominally-typed OOP. 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. Leveraging the development of NOOP, the comparison presented in… 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
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
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
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
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
Towards Understanding Generics in Mainstream OOP
This article reports on steps towards building a simple and accurate domain-theoretic model of generic nominally-typed OOP.
Towards Understanding Generics
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.

References

SHOWING 1-10 OF 66 REFERENCES
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
An Overview of Nominal-Typing versus Structural-Typing in Object-Oriented Programming
TLDR
This report gives an overview of the main notions in object-oriented programming relevant to constructing a mathematical model of nominally-typed OOP such as NOOP and contrasting the three notions with their counterparts in structurally-typing OO languages, i.e., with structurality, structural typing and structural subtyping. Expand
A Theory of Objects
TLDR
This book takes a novel approach to the understanding of object-oriented languages by introducing object calculi and developing a theory of objects around them, which covers both the semantics of objects and their typing rules. Expand
Nominal and Structural Subtyping in Component-Based Programming
TLDR
This work analyzes structural and dierent avors of nominal subtyping from the perspective of component-based programming, where issues such as blame assignment and modular extensibility are important. Expand
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
Class-Based versus Object-Based: A Denotational Comparison
TLDR
This paper contains a thorough denotational analysis which reveals that simplicity is quickly lost if one tackles verification issues and it is shown that theDenotational semantics of the object-based language needs much more advanced domain theoretic machinery than the class based one. Expand
PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language
TLDR
The design of PolyTOIL is based on a careful formal definition of type-checking rules and semantics, and a proof of type safety is obtained with the aid of a subject reduction theorem. 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
A Programmer's Reduction Semantics for Classes and Mixins
TLDR
A model of class-to-class functions that refers to as mixins is developed, which is an intuitive model of an essential Java subset; an extension that explains and models mixins; and type soundness theorems for these languages. Expand
Classes and mixins
TLDR
A model of class-to-class functions that refers to as mixins is developed, which is an intuitive model of an essential Java subset; an extension that explains and models mixins; and type soundness theorems for these languages. Expand
...
1
2
3
4
5
...