Interactive Debugging of Datalog Programs
summary
Claims the first small-step operational semantics for top-down (query/subquery) Datalog, formalizing where a debugger can stop; implements a debugger for core Datalog and adapts it to Soufflé and IncA. Step-over uses a hybrid Datalog semantics that augments top-down stepping with a bottom-up database to make step-over responsive. Evaluation on real-world analyses (Java points-to / Dup) shows interactive stepping is feasible, with most step-into actions under ~70 ms; stratified negation is supported.
AI-written summary · about
chapters (10)
- 0:00Interactive Datalog debugging
- 2:29Debugging Datalog imperatively
- 5:01Datalog stepping semantics challenges
- 7:30Top-down Datalog semantics
- 10:24Debugger implementation and apps
- 11:26Top-down vs bottom-up evaluation
- 13:54Conclusion and future
- 14:38Q&A: Stratified negation & breakpoints
- 15:42Q&A: Breakpoints vs bottom-up
- 16:04Q&A: Provenance comparison
related talks
24mA Counterexample-Guided Debugger for Non-Recursive Datalog
26mDebugging Large-Scale Datalog: A Scalable Provenance Evaluation Strategy
13mAccelerating Program Analyses in Datalog by Merging Library Facts
23mNot Your Mothers Datalog
17mBetter Together: Unifying Datalog and Equality Saturation
52mEnhancing Datalog for Datomic
52mI See What You Mean
19mMaking Formulog Fast: An Argument for Unconventional Datalog Evaluation
