Tool Talk: Soufflé
summary
Soufflé is a Datalog engine that targets C++-level performance by generating standalone C++ via a compiled synthesizer or running an interpreter for quick tests; it uses program specialization, parallel in-memory relational B-trees and auto index selection to cut memory and speed up queries. A Java security example produces the expected vulnerable statement from fact files. Performance depends on manual query scheduling (.plan) and profiling reveals a handful of rules dominate, so poor ordering causes 10x–100x slowdowns. Installation from GitHub or prebuilt packages.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:33Soufflé: A Datalog Synthesis Tool
- 3:19Datalog as DSL for Static Program Analysis
- 5:11How does Soufflé work?
- 5:57Security Analysis in Datalog
- 7:08Demo
- 9:40Soufflé's Performance Aspects
- 10:35Souffle's Profiling
- 10:48Soufflé as a Programming Language
- 11:33Applications in Soufflé
- 12:16Current Work on Soufflé
related talks
57mHigh-Performance Logic Programming on Servers, Clusters, and GPUs
14mDataflow-Based Pruning for Speeding up Superoptimization
47mHow an Optimizing Compiler Works
54mWhat Lies Beneath
19mSo You Want To Analyze Scheme Programs With Datalog?
01h 01mA Soupçon of SFINAE
52mDotty Linker: Precise Types Bring Performance
27mCachet: A Domain-Specific Language for Trustworthy Just-In-Time Compilers
