Language Support For Reliable, Extensible Large-Scale Software Systems

Other Titles



Large software systems, which often consist of many interacting components, are hard to develop. For example, a compiler may contain tens of components modeling abstract syntax tree (AST) nodes, and various components for compiler passes, and the implementation of each component is entangled with that of many other components, as suggested in Wadler’s expression problem [87]. This dissertation describes language-based mechanisms to improve the reliability and extensibility of large software. Accessing uninitialized data is a significant source of software unreliability, causing unpredictable or exceptional behavior. Existing object-oriented languages do not guarantee that objects are correctly initialized before use. This dissertation presents masked types to ensure the soundness of object initialization, even with class inheritance and cyclic data structures. The type system tracks initialization in a fine-grained, modular way, and embeds a graph theoretic algorithm for reasoning about the construction of complex data structures. Class inheritance is an important way to reuse code in object-oriented languages, but it has two limitations when applied to large software systems. First, a family of interacting classes cannot be extended together while preserving their relationships, and second, new functionality cannot be added to existing objects in a modular way. The dissertation presents two solutions: class sharing and family sharing, both addressing the two limitations at once. Class sharing is heterogeneous, which allows two families of classes to share some of their members, but at the price of complex language mechanisms. Family sharing is homogeneous: two shared families always share all of their member classes. Shadow classes are introduced to ensure type safety, and provide the additional expressiveness of open families. Finally, the dissertation presents implementation techniques that make the sharing mechanisms practical.

Journal / Series

Volume & Issue



Date Issued





Effective Date

Expiration Date




Union Local


Number of Workers

Committee Chair

Committee Co-Chair

Committee Member

Degree Discipline

Degree Name

Degree Level

Related Version

Related DOI

Related To

Related Part

Based on Related Item

Has Other Format(s)

Part of Related Item

Related To

Related Publication(s)

Link(s) to Related Publication(s)


Link(s) to Reference(s)

Previously Published As

Government Document




Other Identifiers


Rights URI


dissertation or thesis

Accessibility Feature

Accessibility Hazard

Accessibility Summary

Link(s) to Catalog Record