Software is becoming increasingly pervasive and complex. These trends expose masses of users to unintended software failures and deliberate cyber-attacks. A widely-adopted solution to enforce software quality is automated program analysis. A key challenge in designing an effective analysis is to decide what approximations to apply. Approximations are inevitable as program analysis problems are undecidable in general. The state-of-the-art relies on an expert analysis designer to choose fixed approximations. These approximations, however, often fail to meet the needs of individual usage scenarios as software artifacts and analysis clients become increasingly diverse. This in turn hinders the soundness, scalability, and precision of existing analysis tools.
To address this challenge, this talk presents an online-learning-based approach that automatically adapts an analysis to a given usage scenario. By adapting to user feedback, program properties of interest, and characteristics of the program at hand, the approach synthesizes approximations that are optimal for the given setting. To enable learning, it converts a conventional program analysis specified by the analysis designer into a probabilistic analysis, which is expressed using a system of weighted constraints. Our empirical evaluation shows that this approach substantially reduces the numbers of false alarms produced by real-world analyses on large and widely used Java programs. I will also describe new algorithmic techniques to solve very large instances of weighted constraints that arise not only in our domain but also in other domains such as Big Data analytics and statistical AI.
Xin Zhang is a sixth-year Ph.D. student at Georgia Institute of Technology and a visiting scholar at the University of Pennsylvania. His research interest lies in the intersection of programming languages and software engineering, with a current emphasis on learning-based techniques that enable scalable and precise program reasoning for large real-world programs. His work has received Distinguished Paper Awards from PLDI'14 and FSE'15. He has also worked on constrained optimization, mobile-cloud computing, and approximate computing. Xin is currently supported by a Facebook Fellowship.