My picture

Xinyu Wang

Computer Science and Engineering Department
University of Michigan, Ann Arbor

Email: xwangsd AT umich DOT edu

[CV] [Research Statement]

I am a researcher at Microsoft. Starting Fall 2020, I will be an Assistant Professor in the CSE department at University of Michigan, Ann Arbor. I obtained my PhD from UT Austin, advised by Isil Dillig.
Before graduate school, I obtained my B.E. degree (with honor) from Shanghai Jiao Tong University in 2013.

I am looking for motivated PhD, MS, and undergraduate students.
If you want to work on fundamental and practical machine programming problems, please email me!
(This page is a bit outdated. Contact me for the latest project ideas!)

Research Interests

My areas of interest are programming languages, formal methods, and software engineering.
My research to date focuses on developing foundational program synthesis techniques that are applicable to automating real-world programming tasks.
I am also interested in developing and applying program analysis techniques in the context of software security and software engineering.


Due to the ubiquity of computing, programming has started to become an essential skill for an increasing number of people, including data scientists, financial analysts, and spreadsheet users. While it is well known that building any complex and reliable software is difficult, writing even simple scripts is challenging for novices with no formal programming background.
The goal of my research is to democratize programming and make it possible for millions of people around the globe to automate otherwise tedious tasks. To achieve this goal, I develop novel and foundational program synthesis techniques that automatically generate programs from high-level specifications (such as input- output examples) for a wide spectrum of application domains.

Automating real-world programming tasks
One central theme of my research is on the development of novel synthesis techniques for new and important application domains. In particular, I've applied program synthesis to automate various programmatic tasks in data science and spreadsheet programming.
  • Filtering spreadsheet data using examples [OOPSLA'16]
  • Data imputation using program sketching and programming-by-example [OOPSLA'17]
  • Automated migration of hierarchical data to relational tables [VLDB'18]
Foundations of program synthesis
In order to scale program synthesis technology to increaslying more application domains, we need foundational algorithms that can be re-used across domains. This motivates another theme of my research on development of program synthesis frameworks: Instead of developing domain-specific synthesizers for new domains completely from scratch, such frameworks allow developing synthesizers for new domains with less human effort.
  • A general program synthesis framework using tree automata [OOPSLA'17]
  • An efficient program synthesis framework using abstraction refinement [POPL'18, CAV'18]
    This work pioneers the use of program abstractions in a general synthesis framework, which leads to orders of magnitude improvement in synthesis speed.
  • A program synthesis framework for relational specifications (that relate multiple programs) [OOPSLA'18]


  • Multi-modal Synthesis of Regular Expressions (PLDI 2020)
    Qiaochu Chen, Xinyu Wang, Xi Ye, Greg Durrett, and Isil Dillig

  • An Efficient Programming-by-Example Framework (2019)
    Xinyu Wang

  • Relational Program Synthesis (OOPSLA 2018)
    Yuepeng Wang, Xinyu Wang, and Isil Dillig

  • Learning Abstractions for Program Synthesis (CAV 2018)
    Xinyu Wang, Greg Anderson, Isil Dillig, and Ken McMillan

  • Automated Migration of Hierarchical Data to Relational Tables using Programming-by-Example (VLDB 2018)
    Navid Yaghmazadeh, Xinyu Wang, and Isil Dillig

  • Program Synthesis using Abstraction Refinement (POPL 2018)
    Xinyu Wang, Isil Dillig, and Rishabh Singh

  • Synthesis of Data Completion Scripts using Finite Tree Automata (OOPSLA 2017)
    Xinyu Wang, Isil Dillig, and Rishabh Singh

  • FIDEX: Filtering Spreadsheet Data using Examples (OOPLSA 2016)
    Xinyu Wang, Sumit Gulwani, and Rishabh Singh

  • EXPLORER : Query- and Demand-Driven Exploration of Interprocedural Control Flow Properties (OOPSLA 2015)
    Yu Feng, Xinyu Wang, Isil Dillig, and Calvin Lin

  • Bottom-up Context-Sensitive Pointer Analysis for Java (APLAS 2015)
    Yu Feng, Xinyu Wang, Isil Dillig, and Thomas Dillig