English

A Language for Generic Programming in the Large

Programming Languages 2007-08-17 v1 Software Engineering

Abstract

Generic programming is an effective methodology for developing reusable software libraries. Many programming languages provide generics and have features for describing interfaces, but none completely support the idioms used in generic programming. To address this need we developed the language G. The central feature of G is the concept, a mechanism for organizing constraints on generics that is inspired by the needs of modern C++ libraries. G provides modular type checking and separate compilation (even of generics). These characteristics support modular software development, especially the smooth integration of independently developed components. In this article we present the rationale for the design of G and demonstrate the expressiveness of G with two case studies: porting the Standard Template Library and the Boost Graph Library from C++ to G. The design of G shares much in common with the concept extension proposed for the next C++ Standard (the authors participated in its design) but there are important differences described in this article.

Keywords

Cite

@article{arxiv.0708.2255,
  title  = {A Language for Generic Programming in the Large},
  author = {Jeremy G. Siek and Andrew Lumsdaine},
  journal= {arXiv preprint arXiv:0708.2255},
  year   = {2007}
}

Comments

50 pages

R2 v1 2026-06-21T09:08:05.611Z