paperbot · PL 论文追踪

全部论文 待读 收藏

P2 jAST: Analyzing and Modifying Java ASTs with Python

jAST:使用 Python 分析与修改 Java AST
FSE Proceedings of the 33rd ACM International Conference on the Foundations of Software Engineering2025匹配度 4/10 · 该论文提供Python操作Java AST的工具,属于程序分析与静态分析的基础设施,并提及可为学习型失败分析做特征提取,与用户的部分方向有弱关联;但未涉及Agentic/LLM程序静态分析、AI辅助静态分析、浮点程序分析、贝叶斯程序分析等核心问题,也不是方法或benchmark创新。引用 0 inbox
Marius Smytzek, Martin Eberlein, Lars Grunske, Andreas Zeller
crossref: 2026-09-12

AI 速览

一句话:提出基于 Python 的 jAST 工具,生成并操作 Java 抽象语法树,支持源码级分析与变换。

在软件工程中,许多任务需要在抽象语法树(AST)层面分析和修改 Java 源码。现有 Java 专用工具多工作于字节码层,或与 Java 生态紧密耦合,灵活性和可访问性受限。本文提出 jAST:一个基于 Python 的工具,可为 Java 程序生成并操作 AST。它利用 Python 的简洁性与丰富生态,支持精确的源码级分析、与 Python 工作流无缝集成,并可用于调试特征提取和基于学习的失败分析等高级任务。jAST 以开源工具形式发布,为研究者、教育者和实践者提供可扩展的 Java AST 处理框架。

问题
现有 Java AST 分析或修改工具常基于字节码,或与 Java 生态强耦合,导致灵活性与可访问性不足。
方法
jAST 使用 Python 为 Java 程序生成和操作 AST,借助 Python 生态实现源码级分析、修改以及与 Python 工作流的集成。
评估
论文以开源工具形式展示 jAST,并说明其可支持调试特征提取和基于学习的失败分析等任务;摘要未报告量化实验评估。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot9091,
  title = {jAST: Analyzing and Modifying Java ASTs with Python},
  author = {Marius Smytzek and Martin Eberlein and Lars Grunske and Andreas Zeller},
  booktitle = {FSE},
  year = {2025},
  doi = {10.1145/3696630.3728598}
}