Type-Directed Java


 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.




Technical Reports

Related projects

AspectML extends functional programming languages with aspect-oriented features. Type-directed programming forms an essential part of AspectML, allowing aspects to be specialized to the type context in which they are triggered.


Last modified: 12/01/2004