In my research I build theories and systems about programming. A theory tries to understand a concept in a simplified setting where its properties can be identified via logical or statistical analysis. A system applies theory to a real-world setting where unexpected constraints and engineering concerns influence the theory's application.
I developed an algorithm for using ownership types to statically / modularly analyze information flow, and proved its soundness as noninterference .
I showed that working memory limits a person's ability to remember the value of variables while program tracing .
I articulated a design space for documentation generators based on a cognitive task analysis of how developers search through APIs .
I demonstrated that machine learning models can classify a program's high-level structure to a high degree of accuracy .
HATRA @ SPLASH 2021.
PLATEAU @ SPLASH 2020.
HATRA @ SPLASH 2020.
PLATEAU @ UIST 2019.
AI Systems @ SOSP 2019.
PLATEAU @ SPLASH 2018.
Here are some interesting ideas that I haven't had time to keep exploring.
HashMap. See willcrichton/lia for further inspiration.