JavaDL: Automatically Incrementalizing Java Bug Pattern Detection
summary
JavaDL is a Datalog-based language that merges fact extraction with analysis so AST nodes are first-class facts and rules use syntactic patterns and semantic predicates. It automatically incrementalizes detectors at compilation-unit granularity via domain-separation signatures and provenance tracking in ExtendJ, so only affected local rules are recomputed and global rules combine cached results. Ten SpotBugs/ErrorProne checks are reimplemented: JavaDL is ~4.9× and ~2.8× more concise, matches ErrorProne closely, reports more than SpotBugs (AST vs bytecode), and shows mixed but competitive incremental speedups.
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:15JavaDL: a static bug checker framework for Java
- 1:28Black-box static bug checkers
- 2:19Datalog
- 5:11JavaDL: syntactic patterns
- 6:57JavaDL: incremental evaluation and semantic predicates
- 7:26JavaDL: incremental architecture
- 8:37Evaluation research questions
- 8:58Methodology
- 9:26RQ: How expressive is JavaDL?
- 9:57RQ: How precise is JavaDL?
- 10:35RQ: How effective is incrementalization?
- 11:11RQ. How does JavaDL running time compare to other tools?
related talks
58mDebugging #Java
57mVariant analysis
53mBug prediction based on your code history
01h 57mAutomatically improving Java codebases with Error Prone
28mBeyond LSP: Extensions for Java
40mAssuring top-notch code quality in the Java Universe
28mTowards Automated Updates of Software Dependencies
36mFind and fix performance issues in your code usign Digma
