Tuesday 12pm, 16 February 2016
Transforming the way programmers perform data manipulation tasks
Adjunct Professor - Federal University of Campina Grande
Data manipulation is a common task for many users ranging from data scientists to software developers. We envision that program synthesis is a key solution for enabling better data manipulation tools. In this talk, I will present FlashProg, a framework that provides UI support for several programming by example engines related to data manipulation, such as FlashFill and FlashExtract. FlashProg implements two novel user interaction models to resolve ambiguities in example-based specification, thereby increasing users' trust in the results. Our user studies show that each of these models significantly reduces the number of errors in the performed task. Then I will present an empirical study on repetitive changes that developers perform while adding features, fixing bugs, or refactoring code. To help developers to apply these changes, we propose FlashCode: a technique to perform repetitive changes. It extends program synthesis techniques of FlashFill and FlashExtract. Given examples of code fragments and the desired transformation, FlashCode synthesizes programs to locate similar code fragments and perform the transformation. We evaluate our technique for 66 repetitive change scenarios. In 79% of the cases, our technique applied the same changes applied by developers. In the other cases, the technique performed more changes. We discuss the scenarios where it transformed code fragments missed by developers and its limitations.
Gustavo Soares is a postdoctoral researcher at UC Berkeley working with Björn Hartmann in the Berkeley Institute of Design. He is also a professor at Federal University of Campina Grande, Brazil. His research interests include HCI, program synthesis, and refactoring techniques. He holds a Doctoral degree in Computer Science from the Federal University of Campina Grande, advised by Rohit Gheyi. During his PhD, Gustavo received the ACM SIGPLAN John Vlissides Award and won the Gold Medal at the ACM Student Research Competition at SPLASH 2012. He has also worked and collaborated with Sumit Gulwani at MSR for the past two years, and his work has led to important shipped features in commercial products.