Computing While Compiling: Reasons and Methods for Compile-time Metaprogramming

Event Sponsor: 
Mathematics and Computer Science Division Seminar
Start Date: 
Jan 31 2008 (All day)
Building/Room: 
Building 221, Conference Room A216
Location: 
Argonne National Laboratory
Speaker(s): 
Ron Garcia
Speaker(s) Title: 
Indiana University
Host: 
Paul Hovland

Software libraries make it much easier for developers to build applications, but the abstractions they provide often come with a price: slow run-time performance and some usage errors overlooked by the type checker at compile-time. In this talk, I discuss how C++ template metaprogramming has been used to implement software libraries that provide high-level interfaces without sacrificing run-time performance and check domain-specific properties at compile-time. I discuss the benefits and shortcomings of template techniques. Based on my analysis of the essential capabilities of C++ templates for template metaprogramming, I present a language design that directly and intentionally captures those capabilities.

Miscellaneous Information: