Jeremy Siek is an Associate Professor of Computer Science in the School of Informatics and Computing at Indiana University. Jeremy teaches courses in programming, programming languages, compilers, logic, and other areas of computer science. Jeremy designs new language features to help programmers create and use software libraries and domain-specific languages, especially generic and high-performance ones. In particular, Jeremy invented the gradual typing approach to mixing static and dynamic type checking within the same language. Prior to that, Jeremy authored the Boost Graph Library and attempted to add concepts to C++. Jeremy is a member of the Programming Languages Group at IU and the Center for Research in Extreme Scale Technologies (CREST).

Email: jsiek@indiana.edu, Office: LH 230D, Blog, Twitter, CV

Upcoming Events

Impact

I’ve been fortunate to see some of my ideas get used in the software industry:

  • Facebook has added gradual typing to PHP. See the article in Wired magazine.
  • Microsoft created a gradually-typed dialect of JavaScript, called TypeScript.
  • The implicits feature of Scala was inspired by my work on concepts for C++.

Recent Papers and Talks

The full list is available on Google Scholar and DBLP.

  • Pycket: A Tracing JIT for a Functional Language, Spenser Bauman, Carl Friedrich Bolz, Robert Hirschfeld,Vasily Krilichev, Tobias Pape, Jeremy G. Siek, Sam Tobin-Hochstadt. Accepted for ICFP 2015. pdf
  • Blame and coercion: Together again for the first time with Peter Thiemann and Philip Wadler. Published at PLDI 2015. pdf
  • Refined Criteria for Gradual Typing with Michael M. Vitousek, Matteo Cimini, and John Tang Boyland. In SNAPL 2015. pdf Isabelle slides
  • Monotonic References for Efficient Gradual Typing with Michael M. Vitousek, Matteo Cimini, Sam Tobin-Hochstadt, and Ronald Garcia. Published at ESOP 2015. pdf  Isabelle reviews
  • Blame for All (revised), Amal Ahmed, James T. Perconti, Jeremy G. Siek, and Philip Wadler. draft pdf

Teaching

Previous courses at Univ. of Colorado:

CS MS Student Advising

I am available for walk-in advising in my office (LH 230D) on Tuesdays and Thursdays 3:00-4:00pm during the Fall and Spring semesters. If you have a question about fulfilling your MS degree requirements, prior to coming to my office, send me an email with a list of your courses organized by how they fulfill the degree requirements. The subject line of the email should be  “CS MS:”. If you cannot make it to the walk-in time, you may also send me email, and I will read and respond to those emails during the walk-in advising time, but giving priority to students who are there in person.

Information for Students at IU

Students

  1. Michael M. Vitousek (Gradual Python, i.e., Reticulated)
  2. Chris Wailes (Parallel Programming Languages)
  3. Andre Kuhlenschmidt (Compilation of Gradually Typed Languages)
  4. Deyaaeldeen Almahallawi (Compilation of Gradually Typed Languages)
  5. Spenser Bauman (Meta-tracing JIT for Racket)
  6. Steev Young (Dynamic Analysis of Gradually Typed Languages)

Alumni

  1. Josie Bealle (Summer Research Opportunity in Computing)
  2. Andre Yuri (Summer Research Opportunity in Computing)
  3. Weiyu Miao (Generic Programming, Metaprogramming)
  4. Geoffrey Belter (Apple)
    Ph.D. thesis: Efficient Generation of Sequences of Dense Linear Algebra through Auto-Tuning
  5. Shashank Bharadwaj (VMware)
  6. Jonathan Turner (Microsoft)
  7. Erik Silkensen (Ph.D. student at Northeastern Univ.)
  8. Neelam Agrawal (National Instruments)
  9. Sri Teja Basava (National Instruments)
  10. Ian Karlin (Postdoc at Lawrence Livermore National Laboratory)
  11. Justin Gottschlich (Intel Research Labs)
    Ph.D. thesis: Invalidating Transactions: Optimizations, Theory, Guarantees, and Unification
  12. Moss Prescott (SlamData)
    M.S. thesis: Speaking for the Trees: a New (Old) Approach to Languages and Syntax
  13. Christopher Schwaab (Ph.D. student at the Univ. of St. Andrews)
  14. David Broman (Post-doc at UC Berkeley)
    Ph.D. thesis: Meta-Languages and Semantics for Equation-Based Modeling and Simulation