Show simple item record

dc.contributor Lumsdaine, Andrew
dc.creator Siek, Jeremy G.
dc.date 2010-05-24T15:09:48Z
dc.date 2027-01-24T16:09:48Z
dc.date 2010-05-30T15:00:40Z
dc.date 2010-05-24T15:09:48Z
dc.date 2005
dc.date.accessioned 2023-02-21T11:15:17Z
dc.date.available 2023-02-21T11:15:17Z
dc.identifier http://hdl.handle.net/2022/7067
dc.identifier.uri http://localhost:8080/xmlui/handle/CUHPOERS/252713
dc.description Thesis (PhD) - Indiana University, Computer Sciences, 2005
dc.description The past decade of software library construction has demonstrated that the discipline of generic programming is an effective approach to the design and implementation of large-scale software libraries. At the heart of generic programming is a semi-formal interface specification language for generic components. Many programming languages have features for describing interfaces, but none of them match the generic programming specification language, and none are as suitable for specifying generic components. This lack of language support impedes the current practice of generic programming. In this dissertation I present and evaluate the design of a new programming language, named G (for generic), that integrates the generic programming specification language with the type system and features of a full programming language. The design of G is based on my experiences, and those of colleagues, in the construction of generic libraries over the past decade. The design space for programming languages is large, thus this experience is vital in guiding choices among the many tradeoffs. The design of G emphasizes modularity because generic programming is inherently about composing separately developed components. In this dissertation I demonstrate that the design is implementable by constructing a compiler for G (translating to C++) and show the suitability of G for generic programming with prototypes of the Standard Template Library and the Boost Graph Library in G. I formalize the essential features of G in a small language and prove type soundness.
dc.language EN
dc.publisher [Bloomington, Ind.] : Indiana University
dc.subject Standard ML
dc.subject generic programming
dc.subject generics
dc.subject polymorphism
dc.subject Haskell
dc.subject C++
dc.subject Computer Science
dc.title A Language for Generic Programming
dc.type Doctoral Dissertation


Files in this item

Files Size Format View
umi-indiana-1162.pdf 2.468Mb application/pdf View/Open

This item appears in the following Collection(s)

Show simple item record

Search DSpace


Advanced Search

Browse