Soufflé is an open-source system for developing static program analyses in a declarative fashion. An analysis is expressed in a Datalog-like logic language. From the logic specification of the analysis, Soufflé synthesizes a highly efficient, parallel C++ program. Soufflé is currently being employed for industrial-strength static analysis problems, including large-scale program analysis and security analysis of cloud networks.
In this talk, will give an overview of the underlying technology of Soufflé, how to write Datalog-based static analyses, and present some industrial use-cases that are written in the Soufflé language. We will go beyond the scope of Soufflé as well, and discuss the performance challenges of modern Datalog engine, and possible techniques that help to solve the performance bottlenecks.
Bernhard Scholz is Associate Professor in Computer Science at The University of Sydney. His research interests are in programming languages. Before joining The University of Sydney, he worked for the Vienna University of Technology, and the University of Vienna in academic/research roles. He has held various visiting professorships at the University of Victoria, BC, Canada, Yonsei University, South Korea, and at the Sun Microsystems Laboratories. He had an extended stay at Oracle Labs, Brisbane, working as a Visiting Professor/Consulting Member of Staff on new techniques for declarative techniques for static program analysis.