Abstract
We describe universal types, existential types, and type constructors in Cyclone, a strongly typed C-like language. We show how the language naturally supports first-class polymorphism and polymorphic recursion while requiring an acceptable amount of explicit type information. More importantly, we consider the soundness of type variables in the presence of C-style mutation and the address-of operator. For polymorphic references, we describe a solution more natural for the C level than the ML-style "value restriction." For existential types, we discover and subsequently avoid a subtle unsoundness issue resulting from the address-of operator. We develop a formal abstract machine and type-safety proof that capture the essence of type variables at the C level. © 2006 ACM.
Author supplied keywords
Cite
CITATION STYLE
Grossman, D. (2006). Quantified types in an imperative language. ACM Transactions on Programming Languages and Systems, 28(3), 429–475. https://doi.org/10.1145/1133651.1133653
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.