|
|
 |
News
Colloquia
Language Support for Generic Programming, C++200X and Beyond
Jeremy Siek
Department of Computer Science
University of Colorado
Thursday, March 15, 2007
Conventional wisdom in programming language design suggests there is
tension between flexibility and safety and between abstraction and
performance. A language can be flexible, like Python, or safe, like
Java. A language can provide abstractions, such as objects, or it can
be high-performance and provide only low-level programming
constructs. What are the root causes of these tensions in language
design and how can we resolve them?
In this talk I show how the tension between flexibility and safety in
C++ templates can be resolved by integrating a rich interface
description language, known as ``concepts'', into the C++ type system.
I then discuss the tension between abstraction and performance in the
context of a new programming language named G. The root cause
of performance loss is not abstraction but instead separate
compilation. This tension is fundamental but we can offer choices to
the programmer, such as providing fast compilation during development
using separate compilation, and fast run-time for final production by
applying whole-program optimizations. Finally, I return to the issue
of flexibility versus safety and describe new research on gradual
typing, a technology that allows a programmer to mix statically and
dynamically typed code in the same program and in the same programming
language.
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, type systems, generic programming, and
high-performance software libraries. Jeremy is the author of the Boost
Graph Library, a member of the ANSI/ISO C++ Standards Committee, and
one of the architects of the ``concepts'' extension planned for the
next revision of the C++ Standard (C++200X). Jeremy earned a Ph.D. at
Indiana University and a B.S. and M.S. at the University of Notre
Dame.
Administrative support: Jacky Carley (x8291)
|
 |
|
|