Tool Talk: DOOP
summary
DOOP is a declarative Java/Android bytecode analysis framework that expresses pointer and value‑flow algorithms as ~2,000 Datalog rules compiled to a Souffle backend. It encodes bytecode as tables via a one‑to‑one front end, models JVM init, reflection and native hooks, and offers multiple precision/scalability flavors; most algorithms stay in a polynomial‑time subset. It exposes many command‑line flags, includes a 500–600 line micro‑analysis for experiments, and faces debugging complexity because even tiny Java mains touch ~7,000 JDK classes.
AI-written summary · about
chapters (7)
- 0:00Intro
- 2:34Mutual Recursion
- 4:18Holistic Program Analysis
- 4:54Datalog
- 6:39Static Analysis
- 10:11DOOP Overview
- 11:18Summary
related talks
39mOnce Upon a Bytecode: Analysis Tools
42mUnderstanding the Kotlin to Dalvik bytecode translation
41mDigging into D8 and R8
53mWell there's your problem! Your engine's missing! A look under Java's hood
54mWhat Lies Beneath
44mIntegrating IDEs with Dotty, The Experimental Scala Compiler
47mHow an Optimizing Compiler Works
01h 00mState of Dotty
