home · mobile · calendar · colloquia · 2010-2011 · 

Colloquium - Siek

Growing Languages
Department of Computer Science

I tell two stories about growing programming languages. The first story is about grafting a new feature, named concepts, onto an old language, C++. This story is a tragedy; it begins with a string of successes but suffers a reversal in the end. The second story is about cross-breeding two different languages, Python and C++. This story takes the form of a quest, overcoming several obstacles on a journey that is not yet complete. The talk concludes with a vision in which we do not grow programming languages from seed but instead grow colonies of languages from a shared root system.

Jeremy Siek is an Assistant Professor at the University of Colorado Boulder. Jeremy's areas of research include generic programming, programming language design, type systems, and compiler optimizations for high-level languages. Jeremy's PhD thesis laid the foundation for constrained templates, aka the "concepts" proposal for C++. Prior to that, Jeremy developed the Boost Graph Library, a C++ generic library for graph algorithms and data structures. Jeremy post-doc'd at Rice University where he developed the idea of gradual typing: a type system that integrates both dynamic and static typing in the same programming language. Jeremy is currently juggling too many projects: a gradually-typed version of Python, a language for reflective meta-programming, a version of concepts for the Chapel language, and a domain-specific compiler for generating memory-efficient linear algebra kernels. In 2009 Jeremy received the NSF CAREER award to fund "Bridging the Gap Between Prototyping and Production". In 2010 Jeremy was awarded a Distinguished Visiting Fellowship from the Scottish Informatics and Computer Science Alliance.

This talk is sponsored by the Department of Electrical, Computer and Energy Engineering.

Department of Computer Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
May 5, 2012 (14:13)