But more realistically, I view my research as trying to formally understand what one needs to think about when documenting and reasoning about a program or program component. This can be of great value for teaching and for the construction of tools, even if people do not use the formalism directly or on a daily basis. The other main aspect of my work has been on the design and semantics of object-oriented languages with generic functions. It focuses on the semantics and type systems for variants of the Cecil and Java languages. We hope to apply this to design OO languages that are more flexible.
Programmers can use both styles in the same program.
The potential impact might be large if this leads to more flexible ways of supporting abstract data types in programming languages, as they are at the heart of modular, reusable coding practices. A recent NSF grant is starting to fund research on formal methods for such languages. Details are available through my selection of representative publications below and through my other WWW pages . Representative Publications Clyde Ruby and Gary T. Leavens. Safely Creating Correct Subclasses without Seeing Superclass Code.