License: Creative Commons Attribution 3.0 Germany license (CC BY 3.0 DE)
When quoting this document, please refer to the following
DOI: 10.4230/DARTS.1.1.4
URN: urn:nbn:de:0030-drops-55134
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2015/5513/
Jones, Timothy ;
Homer, Michael ;
Noble, James
Brand Objects for Nominal Typing (Artifact)
Abstract
In Brand Objects for Nominal Typing, we describe an implementation of a branding system for both runtime and static types. This artifact provides the extended form of Hopper, an interpreter for the Grace programming language, and extra modules which define both the dynamic objects and the modular static type checker. The extra modules extend the existing structural type checker in the provided version of Hopper, and are capable of statically checking code which interacts with statically determinable declarations of brand objects, including singleton brand constructors, brand sums, and dynamic variables which are known to contain some brand value at runtime. The dynamic brand objects extend this behaviour to the runtime, enforcing non-static contracts and allowing runtime type testing.
BibTeX - Entry
@Article{jones_et_al:DARTS:2015:5513,
author = {Timothy Jones and Michael Homer and James Noble},
title = {{Brand Objects for Nominal Typing (Artifact)}},
pages = {4:1--4:2},
journal = {Dagstuhl Artifacts Series},
ISSN = {2509-8195},
year = {2015},
volume = {1},
number = {1},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2015/5513},
URN = {urn:nbn:de:0030-drops-55134},
doi = {10.4230/DARTS.1.1.4},
annote = {Keywords: brands, types, structural, nominal, Grace}
}