
As an Amazon Associate and affiliate partner, Menrva Books earns from qualifying purchases. Learn more
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 [Special characters omitted.] (for generic), that integrates the generic programming specification language with the type system and features of a full programming language. The design of [Special characters omitted.] 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 [Special characters omitted.] 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 [Special characters omitted.] (translating to C++) and show the suitability of [Special characters omitted.] for generic programming with prototypes of the Standard Template Library and the Boost Graph Library in [Special characters omitted.]. I formalize the essential features of [Special characters omitted.] in a small language and prove type soundness.
This dissertation introduces and evaluates the design of a new programming language, named [Special characters omitted.] (for generic), specifically engineered to support generic programming. The author, Jeremy Siek, draws upon a decade of experience in constructing large-scale software libraries to address the limitations of existing languages in specifying generic components. The proposed language integrates the semi-formal interface specification language of generic programming directly into the type system and features of a full programming language, emphasizing modularity for component composition. The work demonstrates the implementability of this design through the creation of a compiler that translates [Special characters omitted.] to C++, and validates its suitability with prototypes of the Standard Template Library and the Boost Graph Library.
This work presents a detailed exploration of a novel programming language designed to enhance generic programming practices. The author's extensive experience in library construction grounds the design choices, which prioritize modularity and component composition. The dissertation's contribution lies in its practical implementation and validation through compiler construction and library prototyping, suggesting its potential utility for software developers working with generic components.
Page Count:
249
Publication Date:
2005-01-01
Publisher:
Indiana University
ISBN-10:
0542308096
ISBN-13:
9780542308093
No comments yet. Be the first to share your thoughts!