# 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

#### Tables and Topics from this paper

#### 9 Citations

Why Nominal-Typing Matters in Mainstream OOP

- 2016

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-one… Expand

Novel Uses of Category Theory in Modeling OOP

- Computer Science
- 2017

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

- Computer Science
- ArXiv
- 2016

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

- Computer Science
- ArXiv
- 2016

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

- Computer Science
- 2016

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

- Computer Science, Mathematics
- ArXiv
- 2014

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

- Computer Science
- 2016

This article reports on steps towards building a simple and accurate domain-theoretic model of generic nominally-typed OOP.

Towards Understanding Generics

- Computer Science
- ArXiv
- 2016

This article reports on steps towards building a simple and accurate domain-theoretic model of generic nominally-typed OOP.

Category Theory for Modeling OOP

- Computer Science, Mathematics
- ArXiv
- 2017

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

- Computer Science
- ISDT
- 2013

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

- Computer Science
- ArXiv
- 2013

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

- Computer Science
- Monographs in Computer Science
- 1996

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

- Computer Science
- J. Object Technol.
- 2008

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

- Computer Science
- ArXiv
- 2014

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

- Computer Science
- AMAST
- 2002

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

- Computer Science
- ECOOP
- 1995

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

- 2013

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 programming… Expand

A Programmer's Reduction Semantics for Classes and Mixins

- Computer Science
- Formal Syntax and Semantics of Java
- 1999

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

- Computer Science
- POPL '98
- 1998

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