Souffle: On Synthesis of Program Analyzers
Souffle 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. Souffle 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. Souffle 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 Souffle architecture, usage and demonstrate its applicability for large scale code analysis on the OpenJDK7 library as a use case.
CAV