An Opinionated Overview on Static Analysis for Java
summary
Claims a fully sound whole-program analyzer inside GraalVM Native Image that scales: a hybrid points-to analysis with saturation falls back to declared types once type sets exceed a threshold, yielding near RTA in 50s vs context-sensitive hours runtimes while keeping most points-to precision. Implements pre-analysis compiler passes (inlining, factory-method outlining, escape analysis), collection shortcut edges and primitive-constant propagation to remove checks, and requires explicit JNI/reflection configuration or constant-folding to resolve reflective uses.
AI-written summary · about
chapters (14)
- 0:00Introduction to analysis
- 0:37Static vs dynamic analysis
- 1:42Static analysis techniques
- 5:15Precision versus soundness
- 9:12Difficulties in Java analysis
- 12:20Performance benchmarks
- 15:03Scalable points-to analysis
- 17:34Precision improvements
- 21:12Input optimization strategies
- 23:33Handling VarHandles
- 26:46Proving field initialization
- 30:36Semantic models for collections
- 31:26Tracking primitive values
- 35:18Summary and Q&A








