Reviews
Description
The majority of contemporary mainstream object-oriented (OO) software is written using statically-typed class-based OO programming languages (PLs) such as Java, C#, C++, Scala and others. Existing denotational models of OOP miss crucial features of these mainstream OO programming languages, such as nominality. This book presents the construction of NOOP as the first domain-theoretic model of OOP to include nominal information found in nominally-typed mainstream OO software. Inclusion of nominal information and asserting that type inheritance in statically-typed OO programming languages is an inherently nominal notion allow readily proving that inheritance and subtyping are completely identified in these languages. This conclusion is in full agreement with intuitions of OO developers using these languages, and contrary to the belief among PL researchers that "inheritance is not subtyping", which came from developing structural non-nominal models of OOP. NOOP thus provides a firmer semantic foundation for analyzing and progressing nominally-typed mainstream OO programming languages.
EXTRA 10 % discount with code: EXTRA
The promotion ends in 20d.21:38:12
The discount code is valid when purchasing from 10 €. Discounts do not stack.
The majority of contemporary mainstream object-oriented (OO) software is written using statically-typed class-based OO programming languages (PLs) such as Java, C#, C++, Scala and others. Existing denotational models of OOP miss crucial features of these mainstream OO programming languages, such as nominality. This book presents the construction of NOOP as the first domain-theoretic model of OOP to include nominal information found in nominally-typed mainstream OO software. Inclusion of nominal information and asserting that type inheritance in statically-typed OO programming languages is an inherently nominal notion allow readily proving that inheritance and subtyping are completely identified in these languages. This conclusion is in full agreement with intuitions of OO developers using these languages, and contrary to the belief among PL researchers that "inheritance is not subtyping", which came from developing structural non-nominal models of OOP. NOOP thus provides a firmer semantic foundation for analyzing and progressing nominally-typed mainstream OO programming languages.
Reviews