My main interests are programming languages, systems, and software engineering. I'm particularly interested in compilers and runtime systems for novel programming languages, extensible languages and software, and object systems.
I am currently working with Andrew Myers on two projects.
Polyglot is a Java compiler toolkit that allows novel Java language extensions to be implemented easily. Polyglot translates language extension code into Java. Examples of such extensions are PolyJ, Jif, JMatch.
I am investigating programming languages for distributed systems. The focus of this work is to develop language features for reasoning about data consistency. The work may have applications to concurrent programming in general.
I've been involved with these other projects at Cornell:
I did my Master's at Purdue under Tony Hosking, where I worked on BLOAT, a Java bytecode optimizer.