Show simple item record

dc.contributor.authorHallett, Joseph J.en_US
dc.date.accessioned2011-10-20T04:42:48Z
dc.date.available2011-10-20T04:42:48Z
dc.date.issued2007en_US
dc.identifier.urihttp://hdl.handle.net/2144/1689
dc.description.abstractGeneric object-oriented programming languages combine parametric polymorphism and nominal subtype polymorphism, thereby providing better data abstraction, greater code reuse, and fewer run-time errors. However, most generic object-oriented languages provide a straightforward combination of the two kinds of polymorphism, which prevents the expression of advanced type relationships. Furthermore, most generic object-oriented languages have a type-erasure semantics: instantiations of type parameters are not available at run time, and thus may not be used by type-dependent operations. This dissertation shows that two features, which allow the expression of many advanced type relationships, can be added to a generic object-oriented programming language without type erasure: 1. type variables that are not parameters of the class that declares them, and 2. extension that is dependent on the satisfiability of one or more constraints. We refer to the first feature as hidden type variables and the second feature as conditional extension. Hidden type variables allow: covariance and contravariance without variance annotations or special type arguments such as wildcards; a single type to extend, and inherit methods from, infinitely many instantiations of another type; a limited capacity to augment the set of superclasses after that class is defined; and the omission of redundant type arguments. Conditional extension allows the properties of a collection type to be dependent on the properties of its element type. This dissertation describes the semantics and implementation of hidden type variables and conditional extension. A sound type system is presented. In addition, a sound and terminating type checking algorithm is presented. Although designed for the Fortress programming language, hidden type variables and conditional extension can be incorporated into other generic object-oriented languages. Many of the same problems would arise, and solutions analogous to those we present would apply.en_US
dc.language.isoen_USen_US
dc.publisherBoston University Computer Science Departmenten_US
dc.relation.ispartofseriesBUCS Technical Reports;BUCS-TR-2007-012en_US
dc.titleHidden Type Variables and Conditional Extension for More Expressive Generic Programsen_US
dc.typeTechnical Reporten_US
etd.degree.nameDoctor of Philosophy
etd.degree.leveldoctoral
etd.degree.disciplineComputer Science
etd.degree.grantorBoston University


Files in this item

This item appears in the following Collection(s)

Show simple item record