|Aug 2019||I have joined the Department of Computer Science at the University of Southern California as an Assistant Professor!|
|June 2019||Drake wins a Distinguished Paper Award at PLDI 2019: Effective static analysis during continuous software development and rapid code churn!|
|May 2019||Difflog will appear at IJCAI 2019! This is a fundamentally new, relaxation-based approach to program synthesis.|
|May 2019||Will be serving on the PC for PLDI 2020.|
|Sept 2018||Code2Inv will appear as a NeurIPS 2018 spotlight: Infer loop invariants by reinforcement learning!|
|May 2018||We will be presenting an overview of the Difflog program reasoning framework at MLP 2018!|
|Feb 2018||Bingo will appear at PLDI 2018: Human-in-the-loop + Bayesian reasoning ⇒ Dramatically more accurate bug finding!|
My research is at the intersection of programming languages, software engineering and automated reasoning. I draw on techniques from machine learning and formal methods to solve problems in program synthesis, verification, and static analysis. My goal is to build theoretically well-understood, rigorously evaluated, and practically useful tools to help programmers create better software with less effort.
I was previously affiliated with the University of Pennsylvania, where I obtained my Ph.D. under the guidance of Rajeev Alur, and was later a postdoc working with Mayur Naik. During this time, I developed the Bingo and Drake probabilistic static analysis frameworks, contributed to formalizing the SyGuS synthesis framework, and designed domain-specific languages and programming abstractions for stream processing systems.