The Colloquium Series of the Department of Computer Science, University of Wyoming presents Jeremy Siek University of Colorado, Boulder "Languages and Libraries for High-Performance Computing" Thursday, March 8, 2007 EN 4066 4:00 - 5:00 p.m. Abstract: Modern computational problems require software systems that are both complex and efficient. Abstraction is an important tool for managing complexity but the tension between abstraction and efficiency is a long-standing difficulty in computer science. Generic programming is an emerging methodology and tool set that delivers both abstraction and efficiency. Generic programming has enabled the development of highly-efficient libraries in key areas of scientific computing such as numerical linear algebra, network algorithms, and bioinformatics. In this talk I address issues of modularity that arise in the practice of generic programming. In particular, generic programming in C++ relies on the template feature, but C++ does not provide a mechanism to specify the interface of a template. I present a type system and interface description language that enables modular checking of template definitions and template uses and that is expressive enough to handle sophisticated generic libraries. I conclude with a discussion of ongoing work on the C++ Standards Committee to add this extension to the next revision of the C++ Standard. Biography: Jeremy Siek is a Visiting Assistant Professor in the Department of Computer Science at the University of Colorado at Boulder and a Research Scientist at LogicBlox, Inc. His research interests are in programming languages, generic programming, and high-performance software libraries. Jeremy is the author of the Boost Graph Library and a member of the ANSI/ISO C++ Standards Committee. Jeremy earned a Ph.D. at Indiana University and a B.S. and M.S. at the University of Notre Dame.