Type-directed programming is an important paradigm in the design of
software. By using this form of programming to analyze the
structure of data, many operations, such as serialization, equality
and iterators may be defined once, for all types of data. As
software evolves, these operations need not be updated---they will
automatically adapt to new data forms. Although object-oriented
languages are widely used in the implementation of modern software
systems, they have only primitive support for type-directed
programming. Therefore, this project proposes to adapt and extend
the mechanisms for type-directed programming to those languages.
The specific goals of the project are threefold. The first goal is to extend the existing theory of type-directed programming to object-oriented programming languages. The second is to validate and refine that theory by developing an implementation of an object-oriented language that supports type-directed programming. Finally, the third goal is to use this implementation to investigate new patterns of type-directed programming to inspire new developments in language support for these patterns. Experiments with type-directed programming will be included to better understand its role in programming in the context of object-oriented languages.
Last modified: 12/01/2004