Welcome to, academic home of Gregor Richards.

I teach at the University of Waterloo School of Computer Science. My office is DC3118. When applicable, my office hours are listed on the course web page of the course I am currently teaching. Students are advised to look there.

Feel free to email me at .


Please see the Waterloo Student pages for current course pages.

Past teaching at Waterloo


My research is in programming language and virtual machine design, in particular dynamic and gradually-typed languages. I am interested in designing a gradually-typed superset of JavaScript which

My current projects are

I am a member of the Programming Languages Group at Waterloo.



Interested in my hat collection? You can decide which one I'll wear!