Contact
Feel free to email me at gr@purdue.edu, talk to me
on Jabber at username gregorr@jabber.org, or AIM on
the screen name GregorRP.
Learning
My academic advisor is Jan
Vitek.
Research
My research is in programming language design, in particular dynamic
and gradually-typed languages. I am interested in designing a gradual
typed superset of JavaScript which
- preserves the dynamic power of JavaScript,
- provides static assurance for a reasonable subset of the
language,
- 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
JavaScript programs. My personal research in this area goes to
developing Plof, which at present
is just a toy for testing theories in dynamic language design.
Publications
-
F. Meawad, G. Richards, F. Morandat, and J. Vitek.
Eval begone!: semiautomated removal of eval from JavaScript
programs. In OOPSLA, pages 607–620, 2012.
-
G. Richards, C. Hammer, B. Burg, and J. Vitek. The
eval that men do - a large-scale study of the use of eval in
JavaScript applications. In ECOOP, pages
52–78, 2011.
-
G. Richards, A. Gal, B. Eich, and J. Vitek.
Automated construction of JavaScript benchmarks.
In OOPSLA, pages 677–694,
2011.
-
G. Richards, S. Lebresne, B. Burg, and J. Vitek.
An analysis of the dynamic behavior of JavaScript
programs. In PLDI, pages 1–12, 2010.
-
B. Bloom, J. Field, N. Nystrom, J. Östlund, G. Richards,
R. Strnisa, J. Vitek, and T. Wrigstad. Thorn: robust,
concurrent, extensible scripting on the JVM. In OOPSLA, pages 117–136,
2009.
-
S. Lebresne, G. Richards, J. Ostlund, T. Wrigstad, and J.
Vitek. Understanding the dynamics of JavaScript.
In Proceedings for the 1st workshop on Script to
Program Evolution, pages 30–33. ACM, 2009.
Teaching
In the spring of 2013 I will be teaching CS352: Compilers: Principles
and Practice.
In the past I have been a TA for C, programming languages, software
engineering and introductory programming courses.
Code
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.
Music
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
page.
Miscellaneous
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!
The color scheme of this page is randomly generated and validated by a
neural network I trained to recognize aesthetically pleasing color
combinations. You can get more information on the neural network at http://codu.org/colormatch/, or
re-scheme this
page.