skip to main content
Department of Computer Science University of Colorado Boulder
cu: home | engineering | mycuinfo | about | cu a-z | search cu | contact cu cs: about | calendar | directory | catalog | schedules | mobile | contact cs
home · events · colloquia · 2005-2006 · 

Colloquium - Siek


Languages and Libraries for High Performance Computing
Rice University

Modern computational science problems require software systems that are large and complex and that are as efficient as possible. Abstraction is an important tool for managing the complexity of large software systems, but the tension between abstraction and efficiency is a long-standing difficulty. Generic programming (as exemplified by the C++ Standard Template Library) is an emerging software development paradigm that emphasizes both reusability and efficiency. This paradigm has been used to develop highly-efficient libraries in key areas of scientific computing: basic numerical linear algebra, sparse matrix ordering, iterative solvers, and parallel programming.

In this talk I address issues of modularity that arise in generic programming, most notably with C++. The practice of generic programming in C++ relies heavily on the C++ template mechanism. Unfortunately, C++ does not allow template interfaces to be well defined -- i.e., type parameters cannot be constrained. I present G, a new programming language developed (and formalized) specifically to support generic programming. The constraint language in G is integrated with the type system to provide fully modular type checking and separate compilation. I conclude with a discussion of ongoing work on the C++ Standards Committee to incorporate constrained templates in the next revision of the C++ Standard.

The Department holds colloquia throughout the Fall and Spring semesters. These colloquia, open to the public, are typically held on Thursday afternoons, but sometimes occur at other times as well. If you would like to receive email notification of upcoming colloquia, subscribe to our Colloquia Mailing List. If you would like to schedule a colloquium, see Colloquium Scheduling.

Sign language interpreters are available upon request. Please contact Stephanie Morris at least five days prior to the colloquium.

See also:
Department of Computer Science
College of Engineering and Applied Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
Send email to

Engineering Center Office Tower
ECOT 717
FAX +1-303-492-2844
XHTML 1.0/CSS2 ©2012 Regents of the University of Colorado
Privacy · Legal · Trademarks
May 5, 2012 (13:29)