Yuepeng Wang,  a sixth-year PhD student at Texas Computer Science

Yuepeng Wang, sixth-year PhD student in Dr. Işıl Dillig’s lab

Most websites that we use every day are database applications, which means that they involve software that interacts with an underlying database. As these websites evolve to meet the demands of their users, so must the software and the database schema, i.e., the model that determines the layout of the data. This process is extremely time-consuming and error-prone, because developers not only need to transform the data, but also re-implement all the affected parts of the application.

Yuepeng Wang, a sixth-year PhD student in Dr. Işıl Dillig’s UTOPIA Research Group at UT Austin, is working to automate this process, so that people can more correctly and easily evolve their database applications.

“What Yuepeng is doing is important and special because he is addressing a real pain point in software development that no one has ever looked at before,” says Dr. Dillig. “It has many real-world applications in the software industry and I find the techniques [he] has developed to be intellectually deep and technically interesting.”

These techniques can be broadly classified into two categories of programming language research: verification and synthesis. Verification involves proving that there are no mistakes or bugs in the program. Synthesis takes guidelines such as a logical formulas or example inputs and outputs from the user, and then automatically generates a program that satisfies those specifications.

In the context of evolving database applications, Yuepeng’s verification techniques will make it possible to confirm the equivalence between two versions of the software, that operate over different schemas. And in the case that a developer does not want to manually evolve their application, Yuepeng’s synthesis techniques will automatically migrate the original database program to the updated schema, such that the new version is provably equivalent to the old one. In this way, his research has the potential to free developers from tedious code refactoring for database programs and change the future of schema evolution.