News Archives

Language Support for Generic Programming

April 20, 2004

Date: Tuesday April 20, 2004
Time: 11am-12:15pm
Location: Woodward 149

Andrew Lumsdaine <lums@cs.indiana.edu>
Director, Indiana University Pervasive Technology Labs, Open Systems Lab Associate Professor, Computer Science Department

Abstract:Many modern programming languages support basic generic programming, sufficient to implement type-safe polymorphic containers. Some languages have moved beyond this basic support to a broader, more powerful interpretation of generic programming, and their extensions have proven valuable in practice, particularly for the development of reusable software libraries. Fundamental to realizing generic algorithms is the notion of abstraction: generic algorithms are specified in terms of abstract properties of types and algorithms, the specification of which we call "concepts". Although many languages today have support for "generics", they do not directly support concepts, making it difficult to fully leverage the potential of generic programming in modern software construction. This talk reports on recent work to better understand concepts. Building on previous work by Kapur and Musser, we provide a language-independent definition for concepts. We show how this definition can be realized in the context of different programming languages and discuss how it could be used to address the limitations of existing languages for generic programming.