FlowLog: Re-thinking Datalog for Fast and Extensible Static Analysis
Datalog is widely used to build static analyzers, yet existing engines often force a tradeoff between efficiency and extensibility. In practice, static analyses are not run once and forgotten: users edit facts, tune rules, diagnose bottlenecks, and often need semantics beyond standard Datalog, leaving these tasks to ad hoc tooling or invasive engine rewrites.
We demonstrate FlowLog, a Datalog compiler that turns Soufflé-style programs into Differential Dataflow executables for efficient and extensible static analysis. Across 24 benchmarks derived from real-world workloads, FlowLog consistently outperforms state-of-the-art engines in runtime while remaining memory-efficient and scaling better.
The demonstration walks attendees through a DOOP points-to analysis. They \emph{run} it, switching the same program from one-shot to incremental evaluation that retracts a fact and updates results in milliseconds; \emph{tune} it, inspecting per-operator costs in a browser-based profiler and repairing a bad join order; and \emph{extend} it with a k-core example that uses semantics beyond Datalog.
Tue 6 OctDisplayed time zone: Pacific Time (US & Canada) change
10:30 - 12:00 | Program Analysis, Verification & DebuggingSPLASH/ISSTA Tool Demonstrations at OCC 202 Chair(s): Vesal Vojdani University of Tartu | ||
10:30 18mPaper | FlowLog: Re-thinking Datalog for Fast and Extensible Static Analysis SPLASH/ISSTA Tool Demonstrations A: Zhenghong Yu University of Wisconsin-Madison, A: Hangdong Zhao Microsoft Gray Systems Lab, A: Wanzhu Hou University of Wisconsin-Madison, A: Paraschos Koutris University of Wisconsin-Madison | ||
10:48 18mTalk | Fusion: A Fold and Unfold Annotation Synthesis Tool for Viper-Based Verification SPLASH/ISSTA Tool Demonstrations A: Joonghoon Lee Korea University, A: Nicolas Klose ETH Zurich, A: Seokhyun Lee Korea University, South Korea, A: Peter Müller ETH Zurich, A: Hakjoo Oh Korea University | ||
11:06 18mPaper | VarCHEKER: A Variability-based Static Analyzer for Python Applications SPLASH/ISSTA Tool Demonstrations A: Chin Khor Iowa State University, A: Robyn Lutz Iowa State University, A: Amir Niaraki Musco Sports Lighting | ||
11:24 18mPaper | Iekkë: A Bounded-Round Partial-Order Encoding Verification Tool for Concurrent C Programs SPLASH/ISSTA Tool Demonstrations A: Paolo Di Biase Gran Sasso Science Institute, A: Bernd Fischer Stellenbosch University, A: Salvatore La Torre Università degli Studi di Salerno, A: Peter Schrammel Diffblue Ltd, A: Gennaro Parlato University of Molise | ||
11:42 18mPaper | Diffpoints: Breakpoints Comparing Values of Variables SPLASH/ISSTA Tool Demonstrations A: Filip Čmilňák Technical University of Košice, A: Matúš Sulír Technical University of Košice, A: Milan Nosáľ ValeSoft, s.r.o. Link to publication Media Attached | ||