jAST: Analyzing and Modifying Java ASTs with Python
Analyzing and modifying source code at the Abstract Syntax Tree (AST) level is fundamental to numerous software engineering tasks, including program analysis, instrumentation, and transformation. While Java-specific tools exist, they often operate at the bytecode level or are tightly coupled to the Java ecosystem, limiting their flexibility and accessibility. In this paper, we present jAST, a Python-based tool that generates and manipulates ASTs for Java programs. By leveraging Python's simplicity and extensive ecosystem, jAST enables precise source-level analysis, seamless integration with Python workflows, and support for advanced tasks such as feature extraction for debugging and learning-based failure analysis. jAST is an open-source tool offering researchers, educators, and practitioners an extensible framework for working with Java ASTs.
Authors
- Lars Grunske (ORCID: https://orcid.org/0000-0002-8747-3745)
- Marius Smytzek (ORCID: https://orcid.org/0000-0002-4899-9031)
- Andreas Zeller (ORCID: https://orcid.org/0000-0003-4719-8803)
- Martin Eberlein (ORCID: https://orcid.org/0000-0003-4268-7632)
Institutions
- Humboldt-Universität zu Berlin (DE)
- Helmholtz Center for Information Security (DE)
Publication Details
- Published
- 2025-06-23
- DOI
- https://doi.org/10.1145/3696630.3728598
- Primary Topic
- Software Engineering Research
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Deutsche Forschungsgemeinschaft
- European Research Council