Soufflé: On Synthesis of Program Analyzers
This is the tool paper about Souffle. It was published in CAV’16.
Soufflé is an open source programming framework that performs static program analysis expressed in Datalog on very large code bases, including points-to analysis on OpenJDK7 (1.4M program variables, 350K objects, 160K methods) in under a minute. Soufflé is being successfully used for Java security analyses at Oracle Labs due to (1) its high-performance, (2) support for rapid program analysis development, and (3) customizability. Soufflé incorporates the highly flexible Datalog-based program analysis paradigm while exhibiting performance results that are on-par with manually developed state-of-the-art tools. In this tool paper, we introduce the Soufflé architecture, usage and demonstrate its applicability for large-scale code analysis on the OpenJDK7 library as a use case.