I do programming languages and computer architecture. I like research that breaks down abstraction barriers and rethinks the hardware–software interface. I worked on approximate computing, the idea that computers can be more efficient if we let them make mistakes. See what’s going on in my research group, which is called Capra.

I am an associate professor in the Department of Computer Science at Cornell University, where I am part of the Computer Systems Laboratory and the programming languages group. I graduated from the University of Washington in 2015. Here’s my CV.

latest blogging: May 1, 2023 — more bloggingssubscribe

Flattening ASTs (and Other Compiler Data Structures)

This is an introduction to data structure flattening, a special case of arena allocation that is a good fit for programming language implementations. We build a simple interpreter twice, the normal way and the flat way, and show that some fairly mechanical code changes can give you a 2.4× speedup.