Essential language support for generic programming (2005)
Cached
Download Links
- [www.cs.indiana.edu]
- [www.cs.colorado.edu]
- [ecee.colorado.edu]
- [www.osl.iu.edu]
- [ece-www.colorado.edu]
- [www.cs.indiana.edu]
- [ece.colorado.edu]
- DBLP
Other Repositories/Bibliography
| Venue: | In PLDI ’05 |
| Citations: | 26 - 4 self |
BibTeX
@INPROCEEDINGS{Siek05essentiallanguage,
author = {Jeremy Siek and Andrew Lumsdaine},
title = {Essential language support for generic programming},
booktitle = {In PLDI ’05},
year = {2005},
pages = {73--84},
publisher = {ACM Press}
}
OpenURL
Abstract
“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 C ++ 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.







