Content area

Abstract

Static analysis tools play a crucial role in software development by detecting bugs and vulnerabilities. However, running these tools separately from the code editing process often causes developers to switch contexts, which can reduce productivity. Previous work has shown how Reference Attribute Grammars (RAGs) can be used for declarative implementation of competitive tooling for intraprocedural control-flow and dataflow analysis of Java source code, embodied in the tool IntraJ. In this paper, we demonstrate how IntraJ can be leveraged to provide interactive analysis results directly in the editor, similar to compile-time error detection, relying on automatic on-demand evaluation of RAGs. We discuss the architecture of IntraJ, and demonstrate how it can be integrated into the development process in three different ways: in the command line, in an editor integration based on the Language Server Protocol, and in an integration with the debugging tool CodeProber. We showcase the extensibility of IntraJ by illustrating how new client analyzes and language constructs can be added to the framework through RAG specifications. Finally, we evaluate the interactive performance of IntraJ on a set of real-world Java benchmarks, demonstrating that IntraJ can provide interactive feedback to developers, achieving a response time of under 0.1 seconds for most compilation units.

Details

Business indexing term
Title
IntraJ: an on-demand framework for intraprocedural Java code analysis
Volume
26
Issue
6
Pages
687-705
Publication year
2024
Publication date
Dec 2024
Publisher
Springer Nature B.V.
Place of publication
Heidelberg
Country of publication
Netherlands
ISSN
14332779
e-ISSN
14332787
Source type
Scholarly Journal
Language of publication
English
Document type
Journal Article
Publication history
 
 
Online publication date
2025-01-08
Milestone dates
2024-12-12 (Registration); 2024-12-12 (Accepted)
Publication history
 
 
   First posting date
08 Jan 2025
ProQuest document ID
3164142297
Document URL
https://www.proquest.com/scholarly-journals/intraj-on-demand-framework-intraprocedural-java/docview/3164142297/se-2?accountid=208611
Copyright
Copyright Springer Nature B.V. Dec 2024
Last updated
2025-08-14
Database
ProQuest One Academic