Tue 25 Jun 2019 14:00 - 14:20 at 228AB - Learning Specifications Chair(s): Michael Pradel

Real world applications make heavy use of powerful libraries and frameworks, posing a significant challenge for static analysis as the library implementation may be very complex or unavailable. Thus, obtaining specifications that summarize the behaviors of the library is important as it enables static analyzers to precisely track the effects of APIs on the client program, without requiring the actual API implementation.

In this work, we propose a novel method for discovering aliasing specifications of APIs by learning from a large dataset of programs. Unlike prior work, our method does not require manual annotation, access to the library's source code or ability to run its APIs. Instead, it learns specifications in a fully unsupervised manner, by statically observing usages of APIs in the dataset. The core idea is to learn a probabilistic model of interactions between API methods and aliasing objects, enabling identification of additional likely aliasing relations, and to then infer aliasing specifications of APIs that explain these relations. The learned specifications are then used to augment an API-aware points-to analysis.

We implemented our approach in a tool called USpec and used it to automatically learn aliasing specifications from millions of source code files. USpec learned over 2000 specifications of various Java and Python APIs, in the process improving the results of the points-to analysis and its clients.

Tue 25 Jun

Displayed time zone: Tijuana, Baja California change

14:00 - 15:30
Learning SpecificationsPLDI Research Papers at 228AB
Chair(s): Michael Pradel TU Darmstadt and Facebook
14:00
20m
Talk
Unsupervised Learning of API Aliasing Specifications
PLDI Research Papers
Jan Eberhardt DeepCode, Switzerland, Samuel Steffen ETH Zurich, Switzerland, Veselin Raychev DeepCode AG, Martin Vechev ETH Zürich
Pre-print Media Attached
14:20
20m
Talk
Scalable Taint Specification Inference with Big Code
PLDI Research Papers
Victor Chibotaru DeepCode, Switzerland, Benjamin Bichsel ETH Zurich, Switzerland, Veselin Raychev DeepCode AG, Martin Vechev ETH Zürich
Pre-print Media Attached
14:40
20m
Talk
Learning Stateful Preconditions Modulo a Test Generator
PLDI Research Papers
Angello Astorga , P. Madhusudan University of Illinois at Urbana-Champaign, Shambwaditya Saha , Shiyu Wang University of Illinois at Urbana-Champaign, USA, Tao Xie University of Illinois at Urbana-Champaign, USA
15:00
20m
Talk
SLING: Using Dynamic Analysis to Infer Program Invariants in Separation Logic
PLDI Research Papers
Ton Chanh Le Stevens Institute of Technology, Guolong Zheng University of Nebraska Lincoln, ThanhVu Nguyen University of Nebraska-Lincoln