Class-Invariant Assertions in Object-Oriented Programs
University Of Wisconsin-Milwaukee, Milwaukee WI
Investigators
Abstract
Object-oriented programs contain many "class invariants": propositions that are true of all objects of a given class, and remain true even as the objects change. These class invariants are the focus of this research. There are two broad areas of applications for class invariants. First, class invariants can enable compiler optimizations, allowing programs to run faster. Second, information about class invariants can be of direct use to programmers, reducing the number of software defects. Research goals include building a categorization of class invariants that are tractable for static analysis, developing static analysis algorithms for class invariants, implementing systems that apply class invariants in compiler-style optimization and in verification of user-supplied invariants, and empirically evaluating the techniques as implemented, with particular attention to their speed and the usefulness of the results for standard compiler optimizations.
View original record on NSF Award Search →