Key research themes
1. How can syntax and reinforcement learning be leveraged to improve neural program synthesis under incomplete specifications?
This research theme addresses the limitations of neural program synthesis methods that rely on supervised maximum likelihood training with single reference programs. Specifically, it focuses on mitigating the program aliasing problem—where multiple programs satisfy the same input-output specification—and on incorporating syntactic constraints to efficiently prune the search space. These improvements matter because they enhance synthesis accuracy and generalization in domains with few input-output examples and enable the generation of syntactically valid programs without explicit grammar definitions.
2. How can program synthesis be unified and scaled for diverse static program analysis tasks using logical specifications and domain-specific synthesis?
This theme explores the integration of program synthesis techniques into static program analysis for tasks such as safety proving, bug finding, and termination analysis. It centers on defining an expressive yet decidable fragment of second-order logic (the synthesis fragment) that can model these analyses, enabling a unified declarative framework. The importance lies in reducing the complexity and specialization of static analysis tools, fostering synergy between analyses, and facilitating automatic synthesizer construction for multiple verification tasks, particularly focusing on bit-vector programs over finite domains.
3. What abstraction and counterexample-guided refinement techniques can improve search scalability in example-based program synthesis?
This theme investigates how leveraging abstract semantics over concrete semantics can reduce the search space in program synthesis from input-output examples. By grouping programs that behave equivalently on abstract values, the approach shrinks the space of candidate programs and addresses scalability issues inherent in enumerative and concrete-semantics-based synthesis. The key insight involves integrating a counterexample-guided abstraction refinement loop to iteratively refine abstractions and eliminate spurious synthesized programs, thus converging efficiently to correct concrete solutions.
4. How can interactive and mixed-initiative program synthesis enhance program correctness, generalization, and scalability in educational settings?
This theme focuses on leveraging user interactivity, domain expert knowledge, and program transformations in program synthesis to improve the correctness and usability of synthesized programs. Mixed-initiative approaches combine synthesis algorithms with teacher expertise to refine bug fixes, generate reusable feedback, and cluster student submissions for scalable education. Interactive synthesis frameworks model incremental, step-based, and feedback-driven specification refinement, reducing ambiguity and cognitive load, which is vital for non-programmer users and large-scale instructional environments.
5. How can neural and generator-based program synthesis frameworks handle large, complex APIs to synthesize domain-specific programs from input-output examples?
This theme investigates challenges and solutions in applying programming-by-example synthesis techniques to rich, complex APIs with hundreds of functions and intricate argument semantics, such as data transformation libraries. To address the combinatorial explosion in the candidate program space and argument constraints, the research introduces generator-based synthesis engines that incorporate expert domain knowledge and neural-backed heuristic operators. The key insight is combining deterministic candidate generation with learned models to prioritize promising program candidates, thus balancing correctness, scalability, and usability for novice API users.