Feel free to email me at , talk
to me on Jabber/XMPP/Google Chat at username
firstname.lastname@example.org, or AIM on the screen name
My CV and application materials.
In the spring of 2014 I will be teaching
In the past I have been a TA for C, programming languages, software
engineering and introductory programming courses.
My academic advisor is Jan
My research is in programming language and virtual machine design, in
particular dynamic and gradually-typed languages. I am interested in
- provides static assurance for a reasonable subset of the
- makes the boundaries which cause performance problems in
gradually-typed systems clear, and
- allows for truly-harmless type evolution (adding types with no
effect on dynamic code).
I am currently with a group analyzing the dynamic behavior of
developing Plof, which at present
is just a toy for testing theories in dynamic language design.
OOPSLA 2013. Gregor Richards, Christian Hammer, Francesco Zappa Nardelli, Suresh Jagannathan and Jan Vitek.
One VM to Rule Them All
Onward! 2013. Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon and Mario Wolczko.
OOPSLA 2012. Fadi Meawad, Gregor Richards and Jan Vitek.
OOPSLA 2011. Gregor Richards, Andreas Gal, Brendan Eich and Jan Vitek.
ECOOP 2011. Gregor Richards, Christian Hammer, Brian Burg and Jan Vitek.
PLDI 2010. Gregor Richards, Sylvain Lebresne, Brian Burg and Jan Vitek.
Thorn — Robust, Concurrent, Extensible Scripting on the JVM
OOPSLA 2009. Tobias Wrigstad, Johan Östlund, Gregor Richards, Jan Vitek, Bard
Bloom, John Field, Nathaniel Nystrom and Rok Strnisa.
STOP 2009. Sylvain Lebresne, Gregor Richards, Johan Östlund, Tobias Wrigstad and
At my heart I'm a coder. When I learn something new from research, the
itch to actually code it up is almost unbearable. Here are a few things
I've written that could potentially be useful or interesting to others:
- Plof, a programming language in
which the grammar and semantics of the language are defined at runtime,
and changeable at any time during execution.
- Fythe, the next
generation of Plof's VM. Nowhere near complete yet, but includes an
in-progress JIT and shares all of the more dynamic features (language
defined at runtime) with Plof.
- GGGGC, or Gregor's
General-purpose Generational Garbage Collector. A non-conservative
moving garbage collector that is usable from C (with only a few,
reasonable restrictions). Reasonably performant and great for writing
VMs, e.g. Fythe.
Everybody needs a life outside of research, right? I write music in a
neoromantic style influenced by Borodín, Chopin, and various other
composers who I'm not particularly worthy of comparing myself to. More
information is available on my music
At the moment, (slightly) more useful information on me can be found at
my personal homepage, codu.org.
Interested in my hat collection? You can decide which one I'll wear!