Selected Publications

We study a general formulation of program synthesis called syntax-guided synthesis(SyGuS) that concerns synthesizing a program that follows a given grammar and satisfies a given logical specification. Both the logical specification and the grammar have complex structures and can vary from task to task, posing significant challenges for learning across different tasks. Furthermore, training data is often unavailable for domain specific synthesis tasks. To address these challenges, we propose a meta-learning framework that learns a transferable policy from only weak supervision.
In ICLR, 2019

We present an end-to-end learning framework, Code2Inv, which directly maps source code to loop invariants. Inspired by how human experts construct loop invariants, our framework constructs the solution by multi-step decision making and querying an external program graph memory block. By training with reinforcement learning, we are able to capture rich program features and avoid the need for ground truth solutions as supervision.
In NIPS (spotlight), 2018

We present a Datalog synthesis engine, ALPS, which leverages latent syntactic structure of Datalog programs and prunes the search space by bi-directional search and active learning. Our evaluation on a suite of 34 benchmarks shows that ALPS can synthesize 33 of them, which significantly outperforms the state-of-the-art tools Metagol and Zaatar, which can synthesize only up to 10 of these benchmarks.
In FSE, 2018


Filter by type:
. Learning a Meta-Solver for Syntax-Guided Program Synthesis. In ICLR, 2019.


. Learning Loop Invariants for Program Verification. In NIPS (spotlight), 2018.

PDF Code Dataset Poster Video

. Syntax-Guided Synthesis of Datalog Programs. In FSE, 2018.

PDF Code Dataset Slides

. Difflog: Beyond Deductive Methods in Program Analysis. In Machine Learning for Programming, 2018.


. Effective Interactive Resolution of Static Analysis Alarms. In OOPSLA, 2017.


. On Incremental Core-Guided MaxSAT Solving. In CP, 2016.

PDF Slides

. APISan: Sanitizing API Usages through Semantic Cross-checking. In USENIX Security (Nominated as a finalist in CSAW Best Applied Research Paper), 2016.

PDF Code Slides



Syntax-Guided Synthesis of Datalog Programs


Sanitizing API Usages through Semantic Cross-Checking


Large-Scale Software Analysis and Analytics Using Datalog


A Solver for Mixed Hard and Soft Constraints


Teaching Assistant, CIS 700 Software Analysis and Testing, University of Pennsylvania, 2017 Fall

Teaching Assistant, CS 6340 Software Analysis and Testing (online course), Georgia Institute of Technology, 2016 Spring

Teaching Assistant, CS 7001 Introduction to Graduate Studies, Georgia Institute of Technology, 2015 Fall

Teaching Assistant, CS 285 Computer Networks, Vanderbilt University, 2012 Spring

Teaching Assistant, CS 212 Discrete Structures, Vanderbilt University, 2011 Fall

Recent & Upcoming Talks

NIPS spotlight
Dec 6, 2018 4:10 PM
FSE paper presentation
Nov 8, 2018 11:30 AM
PRiML Spotlight
Sep 28, 2018 3:00 PM


PLDI’18 Student Volunteer Chair, Philadelphia, PA, June 18-22, 2018

POPL’16 Student Volunteer, St. Petersburg, FL, Jan. 20-23, 2016

Selected Awards

ESEC/FSE Travel Fund Award from the US National Science Foundation, 2018

World Finalist of the ACM/ICPC, Ekaterinburg, 2014

Champion of the 38th ACM/ICPC Mid-Central USA Regional, Nashville, 2013

National Scholarship (top 1), Nankai University, 2010

Tianjin Government Scholarship (top 4), Nankai University, 2009