AI 中文总结
研究如何改进Datalog用于静态分析,提出FlowLog编译器,将Soufflé风格程序转为差分数据流可执行文件,在24个基准测试中运行时优于现有引擎,兼具内存高效和扩展性好的优点,还通过演示展示其在实际分析中的多种应用。
AI 中文摘要
Datalog被广泛用于构建静态分析器,但现有引擎常需在效率和可扩展性间权衡。实际中,静态分析并非一劳永逸,用户会编辑事实、调整规则、诊断瓶颈,还需标准Datalog之外的语义,这常依赖临时工具或侵入式引擎重写。我们展示了FlowLog,一种将Soufflé风格程序转换为差分数据流可执行文件的Datalog编译器,用于高效且可扩展的静态分析。在24个来自实际工作负载的基准测试中,FlowLog在运行时始终优于现有引擎,同时保持内存高效且扩展性更好。演示带领参会者进行DOOP指向分析,包括运行、从一次性评估切换到增量评估、调整以及用超越Datalog语义的k核示例扩展。
英文摘要
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 uses a DOOP points-to analysis. Attendees run it, switching the same program from one-shot to incremental evaluation that retracts a fact and updates results in milliseconds; tune it, inspecting per-operator costs in a browser-based profiler and repairing a bad join order; and extend it with a k-core example beyond standard Datalog.
CommentsAccepted at SPLASH/ISSTA 2026 Tool Demonstrations Track