A major portion of my research involves designing language constructs that allow the compiler and language runtime to take responsibility for tedious, error-prone tasks that cut across the program. My prior work has focused on language design, runtime techniques, and program synthesis techniques for factoring information flow security out of programs. This work is based on the semantics I developed for the Jeeves programming language. I am currently expanding to application domains such as performance.
I also apply language design and formal methods to build tools for creating and analyzing rule-based models of protein signaling. As part of the Big Mechanism DARPA project, which has the goal of automatically generating rule-based models from the scientific literature, my collaborators and I have been building a reasoning engine for exploring spaces of possible models. We have also been building analysis tools for better understanding the resulting models.