Petablox: Large-Scale Software Analysis and Analytics Using Datalog

Big Code, the collective knowledge amassed from analyzing programs, presents a timely and unprecedented opportunity to improve existing methods for program reasoning and enable newer ones. Petablox is a new declarative paradigm and system that aims to serve as a foundation to realize this objective. Based on the logic programming language Datalog, Petablox addresses challenges of application diversity and implementation complexity in seeking a broad and deep unification that has eluded past declarative efforts in program analysis. Starting from a single common specification of any program analysis in Datalog, it automatically synthesizes Big-Code tasks such as tailoring program abstractions to analysis queries, transferring analysis facts across programs, and incorporating user feedback to improve analysis results over time.