The growing pervasiveness and complexity of software stands to expose masses of users to software failures and cyber-attacks. Existing automated approaches that are commonly used to find software bugs are based on logical reasoning. While logical reasoning provides important benefits such as correctness guarantees and human interpretability, however, it lacks the ability to handle uncertainty and noise arising from imprecise specifications, missing program parts, and imperfect environment models.
This talk presents a new methodology to overcome this limitation via machine learning. The methodology seamlessly incorporates probabilistic reasoning into existing approaches that are based on logical reasoning. It thereby achieves the best of both worlds without suffering the limitations of either: the probabilistic part enables to leverage a rich collection of beliefs learnt over time, while the logical part enables to leverage a rich literature of program reasoning rules to make accurate predictions by propagating the beliefs. I will demonstrate how the resulting approach enables to discover deep semantic bugs in widely-used Java programs comprising a million lines of code at a fraction of the human effort required by past approaches.
Mayur Naik is an Associate Professor of Computer Science at the University of Pennsylvania. His research spans all aspects of
programming systems with the goal of improving software quality and programmer productivity. His current focus is developing advanced programming systems that effectively combine the power of humans, computers, and data. He holds a Ph.D. in Computer Science from Stanford University (2008). He was a researcher at Intel Labs, Berkeley from 2008 to 2011, and a faculty of Computer Science at Georgia Tech from 2011 to 2016. He is a recipient of Georgia Tech’s Lockheed-Martin Teaching Excellence Award (2015) and an NSF CAREER award (2013). He also received an ACM SIGPLAN Distinguished Paper Award at PLDI 2014 and ACM SIGSOFT Distinguished Paper Awards at FSE 2014 and ICSE 2009.