Assistant Professor

Research interests

Gregor Richards' research interests are in the area of programming languages, in particular the implementation of dynamic and gradually-typed languages. He is a member of the Programming Languages Group in Waterloo, and was previously a member of the Secure Software Systems group at Purdue University. His research focuses on the intersection of virtual machines and dynamic languages, and in particular JavaScript, the programming language of the web. He was a major contributor to Oracle's TruffleJS implementation of JavaScript, as well as the author of JavaScript research tools JSBench and TracingSafari. In addition, he has worked on gradually-typed programming languages, and making the gradual typing model amenable to highly-dynamic languages such as JavaScript. His prior research focused on dynamic software metrics, so as to have a verifiable basis for future expansion.

Degrees and awards

BSc (Portland State University, 2008), PhD (Purdue University, 2014) Awards

Halstead Award for significant contributions in software metrics (2011)

Industrial and sabbatical experience

Professor Richards has worked as a research or development associate with Apple, Oracle Labs, Microsoft Research and IBM Research.

Representative publications

Flexible Access Control for JavaScript. OOPSLA 2013. Gregor Richards, Christian Hammer, Francesco Zappa Nardelli, Suresh Jagannathan and Jan Vitek.

One VM to Rule Them All. Onward! 2013. Thomas Wuerthinger, Christian Wimmer, Andreas Woess, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon and Mario Wolczko.

Eval Begone!: Automated Removal of Eval from JavaScript Programs. OOPSLA 2012. Fadi Meawad, Gregor Richards and Jan Vitek.

Automated Construction of JavaScript Benchmarks. OOPSLA 2011. Gregor Richards, Andreas Gal, Brendan Eich and Jan Vitek.

The Eval that Men Do — A Large-scale Study of the Use of Eval in JavaScript

Applications. ECOOP 2011. Gregor Richards, Christian Hammer, Brian Burg and Jan Vitek.

An Analysis of the Dynamic Behavior of JavaScript Programs. PLDI 2010. Gregor Richards, Sylvain Lebresne, Brian Burg and Jan Vitek.

University of Waterloo
Contact information: 

Profiles by type