Picture of Jeremy Siek

Jeremy G. Siek
Assistant Professor
University of Colorado at Boulder
Department of Electrical, Computer, and Energy Engineering

PGP Public Key

         Home         Research         Publications         

My research interests are in the areas of programming languages and software engineering with applications in the computational sciences. In particular, I am interested in language support for high-performance software libraries and domain specific languages. My research includes work in type systems, optimizing compilers, program logics, and language facilities for program generation.

Current Projects

  • Gradual typing is a type system I developed with Walid Taha that allows a program to be dynamically typed in parts and statically typed in other parts. The programmer controls which parts are dynamic/statically checked by either leaving out type annotations on function parameters, or by putting in the type annotations.
    • Gradual typing for functional languages. In Scheme and Functional Programming Workshop, September 2006. [pdf] [bibtex]
    • Gradual Typing for Objects. In ECOOP 2007: European Conference on Object-Oriented Programming, Berlin, Germany, July 2007.
      [pdf] [bibtex]
    • Gradual Typing with Unification-based Inference. In the Dynamic Languages Symposium 2008. [pdf][bib][implementation]
    • Exploring the Design Space of Higher-Order Casts. In ESOP: European Symposium on Programming, York, United Kingdom, March 2009.
      [pdf] [bibtex]
    • Threesomes, With and Without Blame. In the First International Workshop on Script to Program Evolution (STOP 2009) [pdf]
    • Threesomes, With and Without Blame. Accepted for POPL 2010. [pdf] Supersedes the STOP 2009 paper.
  • Build To Order BLAS (project webpage)
    • Automating the Generation of Composed Linear Algebra Kernels. In SC09: the International Conference on High Performance Computing, Networking, Storage, and Analysis. November, 2009. [pdf] [bib] [DOI]
    • Generating Empirically Optimized Composed Matrix Kernels from MATLAB Prototypes. In International Conference on Computational Science 2009.
    • Build to Order Linear Algebra Kernels [pdf][bib]. In the Workshop on Performance Optimization of High-level Languages and Libraries (POHLL'08).
  • G, a language for generic programming. Planned extensions:
    • Meta-programming
    • Optimization
    • Existential types

Past Research