Gregor Richards

I'm a hacker, teacher, and researcher. My academic home is

I do research in programming languages, and in particular the co-design of Just-in-Time compilers and gradually typed programming languages. I teach at the University of Waterloo.

This web site is being reconstructed. More content may be here later. Maybe.


I frequently teach CS241 (Foundations of Sequential Programs) and CS442 (Programming Languages). You can find information on the current offerings of each of those at their respective web sites.


I will hopefully eventually update this web page to discuss my current software projects. You can find everything public at my GitHub profile.

I am currently working on an experimental JIT architecture named Jittefex. Its design goal is to generalize the most core JIT optimization, speculation, to make it practical to experiment with new and unusual speculative optimizations. Jittefex includes SFJIT, a slight modification of SLJIT, the JIT used in PCRE2.

Contact Me

You may contact me by email. I'm also on various social media platforms.