BACK TO INDEX

Publications of year 2005
Thesis
  1. Jeremy G. Siek. A Language for Generic Programming. PhD thesis, Indiana University, August 2005.
    @PhdThesis{siek05:_thesis,
    author = {Jeremy G. Siek},
    title = {A Language for Generic Programming},
    school = {Indiana University},
    year = 2005,
    month = {August},
    annote = {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.} 
    }
    


Conference articles
  1. Jeremy G. Siek and Andrew Lumsdaine. Language Requirements for Large-Scale Generic Libraries. In GPCE '05: Proceedings of the fourth international conference on Generative Programming and Component Engineering, September 2005.
    Note: Accepted for publication.
    @InProceedings{siek05:_g_stl,
    author = {Jeremy G. Siek and Andrew Lumsdaine},
    title = {Language Requirements for Large-Scale Generic Libraries},
    booktitle = {{GPCE} '05: Proceedings of the fourth international conference on {Generative} {Programming} and {Component} {Engineering}},
    year = 2005,
    month = {September},
    note = {accepted for publication},
    annote = {The past decade of experience has demonstrated that the generic programming methodology is highly effective for the design, implementation, and use of large-scale software libraries. The fundamental principle of generic programming is the realization of interfaces for entire sets of components, based on their essential syntactic and semantic requirements, rather than for any particular components. Many programming languages have features for describing interfaces between software components, but none completely support the approach used in generic programming. We have recently developed G, a language designed to provide first-class language support for generic programming and large-scale libraries. In this paper, we present an overview of G and analyze the interdependence between language features and libraries design in light of a complete implementation of the Standard Template Library using G. In addition, we discuss important issues related to modularity and encapsulation in large-scale libraries and how language support for validation of components in isolation can prevent many common problems in component integration. } 
    }
    


  2. Jeremy G. Siek and Andrew Lumsdaine. Essential Language Support for Generic Programming. In PLDI '05: Proceedings of the ACM SIGPLAN 2005 conference on Programming language design and implementation, New York, NY, USA, pages 73--84, June 2005. ACM Press.
    @InProceedings{siek05:_fg_pldi,
    author = {Jeremy G. Siek and Andrew Lumsdaine},
    title = {Essential Language Support for Generic Programming},
    booktitle = {{PLDI} '05: Proceedings of the {ACM} {SIGPLAN} 2005 conference on Programming language design and implementation},
    year = 2005,
    month = {June},
    isbn = {1-59593-056-6},
    pages = {73--84},
    location = {Chicago, {IL}, {USA}},
    doi = {http://doi.acm.org/10.1145/1065010.1065021},
    publisher = {{ACM} Press},
    address = {New York, {NY}, {USA}},
    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 present 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. Concepts include a novel combination of associated types and same-type constraints that do not appear in type classes, but that are similar to nested types and type sharing in ML.} 
    }
    


Internal reports
  1. Jeremy G. Siek, Douglas Gregor, Ronald Garcia, Jeremiah Willcock, Jaakko Järvi, and Andrew Lumsdaine. Concepts for C++0x. Technical report N1758=05-0018, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++, 2005.
    @TechReport{siek05:_concepts_cpp0x,
    author = {Jeremy G. Siek and Douglas Gregor and Ronald Garcia and Jeremiah Willcock and Jaakko J\"arvi and Andrew Lumsdaine},
    title = {Concepts for C++0x},
    institution = {ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language {C++}},
    year = 2005,
    url = "http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2005/n1758.html",
    number = {N1758=05-0018} 
    }
    


  2. Jeremy G. Siek and Walid Taha. C++.T Formalization in Isar. Technical report TR05-458, Rice University, Houston, TX, December 2005.
    @TechReport{siek05:_cpp_isar,
    author = {Jeremy G. Siek and Walid Taha},
    title = {{C++.T} Formalization in {Isar}},
    institution = {Rice University},
    year = 2005,
    number = {TR05-458},
    address = {Houston, TX},
    month = {December} 
    }
    



BACK TO INDEX




Disclaimer:

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.




Last modified: Mon May 8 12:55:58 2006
Author: jsiek.


This document was translated from BibTEX by bibtex2html