Jeremy Siek is a 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, with Walid Taha, Jeremy invented the gradual typing approach to mixing static and dynamic type checking within the same language. Prior to that, Jeremy co-authored the Boost Graph Library and attempted to add concepts to C++. Jeremy is a member of the Center for Programming Systems at IU and Jeremy is an Advocate for gender equity.

Email:, Office: Luddy Hall 3016, Blog, Twitter, CV, Calendar

Technology Transfer

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.
    Facebook has also created Flow, a static type checker for JavaScript.
  • Microsoft created a gradually-typed dialect of JavaScript, called TypeScript.
  • The implicits feature of Scala was inspired by my work on concepts for C++.


My group’s research is currently funded by the following sponsors.

Thank you!

Recent Papers and Talks

The full list is available on Google Scholar and DBLP. Also, see further below for “authorizer” links to my ACM publications.

  • Toward a Mechanized Encyclopedia of Gradual Typing. Draft paper on arXiv. Talk at University of Chile. July 2019. slides
  • Transitivity of Subtyping for Intersection Types. Draft Paper. June 2019. agda arXiv
  • Toward Efficient Gradual Typing. Talk at INRIA Gallium. February 21, 2019. slides
  • ACM DL Author-ize serviceToward efficient gradual typing for structural types via coercions
    Andre Kuhlenschmidt, Deyaaeldeen Almahallawi, Jeremy G. Siek
    PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2019
  • ACM DL Author-ize serviceGradual typing: a new perspective
    Giuseppe Castagna, Victor Lanvin, Tommaso Petrucciani, Jeremy G. Siek
    Proceedings of the ACM on Programming Languages, 2019.
  • The State of the Art in Gradual Typing,
    Talk at the CS Colloquium, Indiana University. slides
  • Intersection Types, Sub-formula Property, and the Functional Character of the Lambda Calculus, Talk at IU CPS Meeting slides.
  • Crash Course on Notation in Programming Language Theory at LambdaConf 2018. slides video part 1 and part 2
  • Modeling the Functional Character of the Lambda Calculus,
    Jeremy G. Siek. Isabelle document available here. Also see this
    blog post.
  • Efficient Gradual Typing, Andre Kuhlenschmidt, Deyaaeldeen Almahallawi, and Jeremy G. Siek. Pre-print on arXiv.
  • Back to the Future with Denotational Semantics.
    Talk at Off the Beaten Track, Jan. 2018. slides.
  • Revisiting Elementary Denotational Semantics. Available on arXiv and in submission, Isabelle mechanization.


Previous courses at Univ. of Colorado:

Information for Students at IU

Students and Post-Doc’s

  1. Andre Kuhlenschmidt (Ph.D. student, Compilation of Gradually Typed Languages)
  2. Deyaaeldeen Almahallawi (Ph.D. student, Compilation of Gradually Typed Languages)
  3. Matthew Heimerdinger (Ph.D. student, Denotational semantics and proofs of compiler correctness)
  4. Kuang-Chen Lu (M.S. student, Gradual Typing)


  1. Michael M. Vitousek (Facebook, Ph.D. thesis: Gradual Typing for Python, Unguarded)
  2. Chris Wailes (Google, Parallel Programming Languages)
  3. Matteo Cimini (Assistant Professor, Univ. of Massachusetts Lowell)
  4. Spenser Bauman (Ph.D. student, Meta-tracing JIT for Racket)
  5. Di Zhong (Undergraduate Research, now Ph.D. student at Northeastern Univ.)
  6. Zeina Migeed (Research co-op from Northeastern, now Ph.D. student at UCLA)
  7. Steev Young (Undergraduate Research in Gradual Typing)
  8. Josie Bealle (Summer Research Opportunity in Computing)
  9. Andre Yuri (Summer Research Opportunity in Computing)
  10. Weiyu Miao (LinkedIn)
    Ph.D. thesis: Reflective Metaprogramming
  11. Geoffrey Belter (Apple)
    Ph.D. thesis: Efficient Generation of Sequences of Dense Linear Algebra through Auto-Tuning
  12. Shashank Bharadwaj (VMware)
  13. Jonathan Turner (Microsoft Typescript => Mozilla Rust)
  14. Erik Silkensen (Flatiron Solutions)
  15. Neelam Agrawal (National Instruments)
  16. Sri Teja Basava (National Instruments)
  17. Ian Karlin (Postdoc at Lawrence Livermore National Laboratory)
  18. Justin Gottschlich (Parallel Computing Lab @ Intel Labs)
    Ph.D. thesis: Invalidating Transactions: Optimizations, Theory, Guarantees, and Unification
  19. Moss Prescott (SlamData)
    M.S. thesis: Speaking for the Trees: a New (Old) Approach to Languages and Syntax
  20. Christopher Schwaab (Ph.D. student at the Univ. of St. Andrews)
  21. David Broman (Assoc. Prof. at KTH Royal Inst. of Tech., Sweden)
    Ph.D. thesis: Meta-Languages and Semantics for Equation-Based Modeling and Simulation

Authorizor (Free) Links to ACM Publications