SPLASH 2025
Sun 12 - Sat 18 October 2025 Singapore
co-located with ICFP/SPLASH 2025

This program is tentative and subject to change.

Fri 17 Oct 2025 15:15 - 15:30 at Orchid East - Analysis 2

Datalog engines for fixpoint evaluation have brought great benefits to static program analysis over the past decades. A Datalog specification of an analysis allows a declarative, easy-to-maintain specification, without sacrificing performance, and indeed often achieving significant speedups compared to hand-coded algorithms.

However, these benefits come with a certain loss of control. Datalog evaluation is bottom-up, meaning that all inferences (from a set of initial facts) are performed and all their conclusions are outputs of the computation. In practice, virtually every program analysis expressed in Datalog becomes unscalable for some inputs, due to the worst-case blowup of computing all results, even when a partial answer would have been perfectly satisfactory.

In this work, we present a simple, uniform, and elegant solution to the problem, with great practical effectiveness and application to virtually any Datalog-based analysis. The approach consists of leveraging the choice construct, supported natively in modern Datalog engines like Soufflé. The choice construct allows the definition of functional dependencies in a relation and has been used in the past for expressing worklist algorithms. We show a near-universal construction that allows the choice construct to flexibly limit evaluation of predicates. The technique is applicable to practically any analysis architecture imaginable, since it adaptively prunes evaluation results when a (programmer-controlled) projection of a relation exceeds a desired cardinality.

We apply the technique to probably the largest, pre-existing Datalog analysis frameworks in existence: Doop (for Java bytecode) and the main client analyses from the Gigahorse framework (for Ethereum smart contracts). Without needing to understand the existing analysis logic and with minimal, local-only changes, the performance of each framework increases dramatically, by over 20x for the hardest inputs, with near-negligible sacrifice in completeness.

This program is tentative and subject to change.

Fri 17 Oct

Displayed time zone: Perth change

13:45 - 15:30
Analysis 2OOPSLA at Orchid East
13:45
15m
Talk
ApkDiffer: Accurate and Scalable Cross-Version Diffing Analysis for Android Applications
OOPSLA
Jiarun Dai Fudan University, Mingyuan Luo Fudan University, Yuan Zhang Fudan University, Min Yang Fudan University, Minghui Yang OPPO
14:00
15m
Talk
Combining Formal and Informal Information in Bayesian Program Analysis via Soft Evidences
OOPSLA
Tianchi Li Peking University, China, Xin Zhang Peking University
14:15
15m
Talk
CoSSJIT: Combining Static Analysis and Speculation in JIT Compilers
OOPSLA
Aditya Anand Indian Institute of Technology Bombay, Vijay Sundaresan IBM Canada, Daryl Maier IBM Canada, Manas Thakur IIT Bombay
14:30
15m
Talk
On Abstraction Refinement for Bayesian Program Analysis
OOPSLA
Yuanfeng Shi Peking University, Yifan Zhang Peking University, Xin Zhang Peking University
14:45
15m
Talk
Sound and Modular Activity Analysis for Automatic Differentiation in MLIR
OOPSLA
Mai Jacob Peng McGill University, William S. Moses University of Illinois Urbana-Champaign, Oleksandr Zinenko Brium, Christophe Dubach McGill University
15:00
15m
Talk
Towards a Theoretically-Backed and Practical Framework for Selective Object-Sensitive Pointer Analysis
OOPSLA
Chaoyue Zhang Nanjing University, Longlong Lu State Key Laboratory for Novel Software Technology, Nanjing University, China, Yifei Lu State Key Laboratory for Novel Software Technology, Nanjing University, China, Minxue Pan Nanjing University, Xuandong Li Nanjing University
15:15
15m
Talk
Universal Scalability in Declarative Program Analysis (with Choice-Based Combination Pruning)
OOPSLA
Anastasios Antoniadis University of Athens, Greece, Ilias Tsatiris Dedaub, Neville Grech Dedaub Limited, Yannis Smaragdakis University of Athens