Title
Constrained kinds
Abstract
Modern object-oriented languages such as X10 require a rich framework for types capable of expressing both value-dependency and genericity, and supporting pluggable, domain-specific extensions. In earlier work, we presented a framework for constrained types in object-oriented languages, parametrized by an underlying constraint system. Types are viewed as formulas C{c} where C is the name of a class or an interface and c is a constraint on the immutable instance state (the properties) of C. Constraint systems are a very expressive framework for partial information. Many (value-)dependent type systems for object-oriented languages can be viewed as constrained types. This paper extends the constrained types approach to handle type-dependency ("genericity"). The key idea is to introduce constrained kinds: in the same way that constraints on values can be used to define constrained types, constraints on types can define constrained kinds. We develop a core programming language with constrained kinds. Generic types are supported by introducing type variables---literally, variables with "type" Type---and permitting programs to impose subtyping and equality constraints on such variables. We formalize the type-checking rules and establish soundness. While the language now intertwines constraints on types and values, its type system remains parametric in the choice of the value constraint system (language and solver). We demonstrate that constrained kinds are expressive and practical and sketch possible extensions with a discussion of the design and implementation of X10.
Year
DOI
Venue
2012
10.1145/2384616.2384675
OOPSLA
Keywords
DocType
Volume
expressive framework,C. Constraint system,core programming language,type variable,object-oriented language,generic type,intertwines constraint,type system,dependent type system,equality constraint
Conference
47
Issue
ISSN
Citations 
10
0362-1340
1
PageRank 
References 
Authors
0.35
21
4
Name
Order
Citations
PageRank
Olivier Tardieu146232.13
Nathaniel Nystrom248335.19
Igor Peshansky3343.91
Vijay A. Saraswat42446178.27