Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics
Tian Tan, Yue Li
Abstract
Static analysis is a mature field with applications to bug detection, security analysis, program understanding, optimization, and more. To facilitate these applications, static analysis frameworks play an essential role by providing a series of fundamental services such as intermediate representation (IR) generation, control flow graph construction, points-to/alias information computation, and so on. However, although static analysis has made great strides and several well-known frameworks have emerged in this field over the past decades, these frameworks are not that easy to learn and use for developers who rely on them to create and implement analyses.
In that sense, it is far from trivial to build a developer-friendly static analysis framework, because compared to the knowledge required for static analysis itself, we have significantly less knowledge designing and implementing static analysis frameworks.
In this work, we take a step forward by discussing the design trade-offs for the crucial components of a static analysis framework for Java, and select the designs by following the HGDC (Harnessing the Good Designs of Classics) principle: for each crucial component of a static analysis framework, we compare the design choices made for it (possibly) by different classic frameworks such as Soot, Wala, Doop, SpotBugs and Checker, and choose arguably a more appropriate one; but if none is good enough, we then propose a better design. These selected or newly proposed designs finally constitute Tai-e, a new static analysis framework for Java, which has been implemented from scratch. Tai-e is novel in the designs of several aspects like IR, pointer analysis and development of new analyses, etc., leading to a developer-friendly (easy-to-learn and easy-to-use) analysis framework. To the best of our knowledge, this is the first work that systematically explores the designs and implementations of various static analysis frameworks for Java. We expect it to provide useful materials and viewpoints for building better static analysis infrastructures, and we hope that it could draw more attentions of the community to this challenging but tangible topic.
• Software and its engineering → Automated static analysis.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 772b89be-aa6e-499a-b10f-f516de98061dCited by top-tier papers17
- Scaling Type-Based Points-to Analysis with SaturationChristian Wimmer, Codrut Stancu, David Kozak, Thomas WürthingerPLDI 2024 · 12 citations
- Pointer Analysis for Database-Backed ApplicationsYufei Liang, Teng Zhang, Ganlin Li, Tian Tan et al.PLDI 2025 · 5 citations
- Bridge the Islands: Pointer Analysis for Microservice SystemsTeng Zhang, Yufei Liang, Ganlin Li, Tian Tan et al.ISSTA 2025 · 2 citations
- An Extensive Empirical Study of Nondeterministic Behavior in Static Analysis ToolsMiao Miao, Austin Mordahl, Dakota Soles, Alice Beideck et al.ICSE 2025 · 1 citation
- Module-Aware Context Sensitive Pointer AnalysisHaofeng Li, Chenghang Shi, Jie Lu, Lian Li et al.ICSE 2025 · 1 citation
Builds on8
- CryptoGuard: High Precision Detection of Cryptographic Vulnerabilities in Massive-sized Java ProjectsSazzadur Rahaman, Ya Xiao, Sharmin Afrose, Fahad Shaon et al.CCS 2019 · 159 citations
- Modular call graph construction for security scanning of Node.js applicationsBenjamin Barslev Nielsen, Martin Toldam Torp, Anders MøllerISSTA 2021 · 47 citations
- Making pointer analysis more precise by unleashing the power of selective context sensitivityTian Tan, Yue Li, Xiaoxing Ma, Chang Xu et al.OOPSLA 2021 · 39 citations
- A large-scale study of usability criteria addressed by static analysis toolsMarcus Nachtigall, Michael Schlichtig, Eric BoddenISSTA 2022 · 38 citations
- Modular collaborative program analysis in OPALDominik Helm, Florian Kübler, Michael Reif, Michael Eichberg et al.FSE 2020 · 35 citations
Related papers
- Two Approaches to Fast Bytecode Frontend for Static AnalysisChenxi Li, Haoran Lin, Tian Tan, Yue LiOOPSLA 2025
- Context Sensitivity without Contexts: A Cut-Shortcut Approach to Fast and Precise Pointer AnalysisWenjie Ma, Shengyuan Yang, Tian Tan, Xiaoxing Ma et al.PLDI 2023 · 29 citations
- Static analysis of Java enterprise applications: frameworks and caches, the elephants in the roomAnastasios Antoniadis, Nikos Filippakis, Paddy Krishnan, Raghavendra Ramesh et al.PLDI 2020 · 41 citations
- Automatically Tailoring Abstract Interpretation to Custom Usage ScenariosMuhammad Numair Mansur, Benjamin Mariano, Maria Christakis, Jorge A. Navas et al.CAV 2021 · 5 citations
- ECSTATIC: An Extensible Framework for Testing and Debugging Configurable Static AnalysisAustin Mordahl, Zenong Zhang, Dakota Soles, Shiyi WeiICSE 2023 · 7 citations
