Friday, April 19, 2013 - 9:00am to 10:15am
KEC 1005

Speaker Information

Danny Dig
Visiting Research Assistant Professor
Computer Science Department
University of Illinois at Urbana-Champaign

Abstract

Change is the heart of software development. For example, software evolves to add features, fix bugs, support new hardware, new versions of operating systems and libraries, and new user interfaces. Unfortunately, programmers perform most software changes manually, through low-level text edits, which are almost never reused. This makes software development time-consuming, error-prone, and expensive. It is widely known that at least two-thirds of software costs are due to evolution, with some industrial surveys claiming 90%.

In this talk I will present our ever-growing toolset of interactive program transformations. It currently automates changes from the domains of parallelism, software upgrades, testing, and end-user programming. I will highlight transformations from two domains: converting a mutable into an immutable class, and improving the maintainability and performance of spreadsheets. Our transformations do not require any program annotations, yet the transformations span multiple, non-adjacent, program statements. A find-and-replace tool can not perform such transformations, which require control- and data-flow analysis. Empirical evaluation shows that our toolset is useful: (i) it dramatically reduces the burden of analyzing and changing code, (ii) it is fast so it can be used interactively, (iii) it correctly applies transformations that open-source developers applied incompletely, and (iv) users prefer the improved quality of the changed code.

Speaker Bio

Danny Dig is a Visiting Research Assistant Professor in the CS department at Illinois, doing research in Software Engineering and Programming Languages. His research goal is to enable programmers to interactively and safely change large programs. He got a PhD from Illinois where his research won the best PhD dissertation award, and the First Prize at the ACM Student Research Competition Grand Finals. He did a postdoc at MIT where he opened the area of interactive transformations for parallelism, then he returned to Illinois. Some of the techniques he developed are shipping with the official release of the popular Eclipse and NetBeans development environments, and are used by millions of Java programmers everyday. He has started two popular workshops, and chaired or co-organized 11 workshops. He served as a member of 28 program or review committees for all top conferences in his area. His research is funded by NSF, Boeing, IBM, Intel, and Microsoft. More info can be found at: http://dig.cs.illinois.edu