My picture

Xinyu Wang

EECS
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 EECS 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 students. If you are interested in working with me and joining MPLSE, please send me an email to initiate the converstations.




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.

Research

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]

Publications

  • Relational Program Synthesis
    Yuepeng Wang, Xinyu Wang, and Isil Dillig
    Proceedings of the ACM on Programming Languages (OOPSLA), 2018
    [Paper]

  • Learning Abstractions for Program Synthesis
    Xinyu Wang, Greg Anderson, Isil Dillig, and Ken McMillan
    International Conference on Computer Aided Verification (CAV), 2018
    [Paper]

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

  • Program Synthesis using Abstraction Refinement
    Xinyu Wang, Isil Dillig, and Rishabh Singh
    Proceedings of the ACM on Programming Languages (POPL), 2018
    [Paper]

  • Synthesis of Data Completion Scripts using Finite Tree Automata
    Xinyu Wang, Isil Dillig, and Rishabh Singh
    Proceedings of the ACM on Programming Languages (OOPSLA), 2017
    [Paper]

  • FIDEX: Filtering Spreadsheet Data using Examples
    Xinyu Wang, Sumit Gulwani, and Rishabh Singh
    Proceedings of the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2016
    [Paper]

  • EXPLORER : Query- and Demand-Driven Exploration of Interprocedural Control Flow Properties
    Yu Feng, Xinyu Wang, Isil Dillig, and Calvin Lin
    Proceedings of the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2015
    [Paper]

  • Bottom-up Context-Sensitive Pointer Analysis for Java
    Yu Feng, Xinyu Wang, Isil Dillig, and Thomas Dillig
    Asian Symposium on Programming Languages and Systems (APLAS), 2015
    [Paper]