Brand Objects for Nominal Typing

Abstract

Combinations of structural and nominal object typing in systems such as Scala, Whiteoak, and Unity have focused on extending existing nominal, class-based systems with structural subtyping. The typical rules of nominal typing do not lend themselves to such an extension, resulting in major modifications. Adding object branding to an existing structural system integrates nominal and structural typing without excessively complicating the type system. We have implemented brand objects to explicitly type objects, using existing features of the structurally typed language Grace, along with a static type checker which treats the brands as nominal types. We demonstrate that the brands are useful in an existing implementation of Grace, and provide a formal model of the extension to the language.

Authors

Timothy Jones, Michael Homer, James Noble

Published in

European Conference on Object-Oriented Programming (ECOOP), 2015

The final copy of this publication is available from the publisher.

Resources

PDF
mwh.nz/pdf/ecoop2015
this page
mwh.nz/pubs/ecoop2015
Michael Homer — 2023 d8db80aa