parametric polymorphism for software component architectures
Parametric polymorphism has become a common feature of mainstream programming languages, but software component architectures have lagged behind and do not support it. We examine the problem of providing parametric polymorphism with components combined from different programming languages. We have investigated how to resolve different binding times and parametrization semantics in a range of representative languages and have identified a common ground that can be suitably mapped to different language bindings. We present a generic component architecture extension that provides support for parameterized components and that can be easily adapted to work on top of various software component architectures in use today (e.g., corba , dcom , jni ). We have implemented and tested this architecture on top of corba . We also present Generic Interface Definition Language ( gidl ) , an extension to corba - idl supporting generic types and we describe language bindings for C++, Java and Aldor. We explain our implementation of gidl , consisting of a gidl to idl compiler and tools for generating linkage code under the language bindings. We demonstrate how this architecture can be used to access C++'s stl and Aldor's BasicMath libraries in a multi-language environment and discuss our mappings in the context of automatic library interface generation.
parametric polymorphism software component architecture generics templates antiunification