[Next] [Previous] [Up] [Top] [Contents]

Module Constructs for Object-Oriented and Functional Languages

Principal Investigator: Vincent F. Russo

Research Assistant: G. Baumgartner

This research focuses on designing module constructs that incorporate the best features found among module constructs of object-oriented languages and of functional languages. In particular, we plan to incorporate parametric polymorphism, subtype polymorphism, overloading, type abstraction, and compile-time type inference in a semantically clean manner.

The main use of module constructs is to offer mechanisms to help structure large programs. However, the semantics of the module constructs found in object-oriented languages are often not very precisely defined. For example, the use of inheritance as a substitute for subtype polymorphism in many object-oriented languages either leads to an unsound or a too inflexible type system. In addition, it is felt that adding module constructs found in functional languages to object-oriented languages would increase their expressiveness, and vice versa.

We are trying to find a compromise between highly expressive module constructs and an efficient implementation on the one hand and a compromise between full type inference as in functional languages and requiring all variables to be declared on the other hand. Currently, we have an implementation of a type abstraction construct for C++ that allows us to decouple subtyping and inheritance, and we are investigating an extension of ML with subtyping and inheritance.

CS Annual Report - 19 APR 1996

[Next] [Previous] [Up] [Top] [Contents]