| Publications of year 2004 |
| Conference articles |
@InProceedings{siek04:_modular_generics,
author = {Jeremy G. Siek and Andrew Lumsdaine},
title = {Modular Generics},
booktitle = {Concepts: a Linguistic Foundation of Generic Programming},
year = 2004,
month = {April},
organization = {{Adobe Systems}},
annote = {This paper presents the design of G, a new language specifically created for generic programming. We review and identify important language features of C++ and Haskell in light of the past decade of generic library research and development. Based on this analysis we propose and evaluate relevant language design decisions for G. Generic programming is concerned with the construction of libraries of reusable software components and is inherently about programming ``in the large.'' Thus, the design of G places its greatest emphasis on modularity and safety, while also providing run-time efficiency and programmer convenience. This paper focuses on name scoping and type checking for generic functions, support for dispatching to algorithm specializations, support for type associations among abstractions, and separate compilation. The resulting design for G includes three novel aspects: scoped models declarations, nested types in concepts, and optional type constraints on generic functions. }
}
| Internal reports |
@TechReport{siek04:_fg1,
author = {Jeremy G. Siek and Andrew Lumsdaine},
title = {Essential Language Support for Generic Programming: Formalization Part 1},
institution = {Indiana University},
year = 2004,
number = 605,
month = {December},
url = {http://www.cs.indiana.edu/cgi-bin/techreports/TRNNN.cgi?trnum=TR605},
annote = {``Concepts'' are an essential language feature needed to support generic programming in the large. Concepts allow for succinct expression of bounds on type parameters of generic algorithms, enable systematic organization of problem domain abstractions, and make generic algorithms easier to use. In this paper we formalize the design of a type system and semantics for concepts that is suitable for non-type-inferencing languages. Our design shares much in common with the type classes of Haskell, though our primary influence is from best practices in the \Cpp{} community, where concepts are used to document type requirements for templates in generic libraries. The technical development in this paper defines an extension to System F and a type-directed translation from the extension back to System F. The translation is proved sound; the proof is written in the human readable but machine checkable Isar language and has been automatically verified by the Isabelle proof assistant. This document was generated directly from the Isar theory files using Isabelle's support for literate proofs.}
}
This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All person copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.
Les documents contenus dans ces répertoires sont rendus disponibles par les auteurs qui y ont contribué en vue d'assurer la diffusion à temps de travaux savants et techniques sur une base non-commerciale. Les droits de copie et autres droits sont gardés par les auteurs et par les détenteurs du copyright, en dépit du fait qu'ils présentent ici leurs travaux sous forme électronique. Les personnes copiant ces informations doivent adhérer aux termes et contraintes couverts par le copyright de chaque auteur. Ces travaux ne peuvent pas être rendus disponibles ailleurs sans la permission explicite du détenteur du copyright.
This document was translated from BibTEX by bibtex2html