Foundational models of object-oriented constructs typically model objects as records with a structural type. However, many object-oriented languages are class-based; statically-typed formal models of these languages tend to sacrifice the foundational nature of the record-based models, and in addition cannot express dynamic class loading or creation. In this paper, we explore how to model statically-typed object-oriented languages that support dynamic class creation using foundational constructs of type theory. We start with an extensible tag construct motivated by type theory, and adapt it to support static reasoning about class hierarchy and the tags supported by each object. The result is a model that better explains the relationship between object-oriented and functional programming paradigms, suggests a useful enhancement to functional programming languages, and paves the way for more expressive statically typed object-oriented languages. In that vein, we describe the design and implementation of the Wyvern language, which leverages our theory.
Wed 8 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:30 - 17:00 | |||
15:30 30mTalk | A Theory of Tagged Objects Research Track Joseph Lee Carnegie Mellon University, Jonathan Aldrich Carnegie Mellon University, Troy Shaw Victoria University of Wellington, Alex Potanin Victoria University of Wellington | ||
16:00 30mTalk | Brand Objects for Nominal Typing Research Track Timothy Jones Victoria University of Wellington, Michael Homer Victoria University of Wellington, James Noble Victoria University of Wellington | ||
16:30 30mTalk | Transparent Object Proxies in JavaScript Research Track |