IntraJ: an on-demand framework for intraprocedural Java code analysis

Guardado en:
Detalles Bibliográficos
Publicado en:International Journal on Software Tools for Technology Transfer vol. 26, no. 6 (Dec 2024), p. 687
Publicado:
Springer Nature B.V.
Materias:
Acceso en línea:Citation/Abstract
Full Text - PDF
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!

MARC

LEADER 00000nab a2200000uu 4500
001 3164142297
003 UK-CbPIL
022 |a 1433-2779 
022 |a 1433-2787 
024 7 |a 10.1007/s10009-024-00771-0  |2 doi 
035 |a 3164142297 
045 2 |b d20241201  |b d20241231 
084 |a 65759  |2 nlm 
245 1 |a IntraJ: an on-demand framework for intraprocedural Java code analysis 
260 |b Springer Nature B.V.  |c Dec 2024 
513 |a Journal Article 
520 3 |a 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. 
653 |a Demand analysis 
653 |a Debugging 
653 |a Source code 
653 |a Tooling 
653 |a Error analysis 
653 |a Static code analysis 
653 |a Performance evaluation 
653 |a Grammars 
653 |a Software development 
653 |a Data flow analysis 
653 |a Error detection 
653 |a Interactive control 
653 |a Grammar 
653 |a Language 
653 |a Software 
653 |a Java 
653 |a Syntax 
653 |a Error correction & detection 
653 |a Automation 
653 |a Feedback 
653 |a Editing 
773 0 |t International Journal on Software Tools for Technology Transfer  |g vol. 26, no. 6 (Dec 2024), p. 687 
786 0 |d ProQuest  |t Advanced Technologies & Aerospace Database 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/3164142297/abstract/embedded/6A8EOT78XXH2IG52?source=fedsrch 
856 4 0 |3 Full Text - PDF  |u https://www.proquest.com/docview/3164142297/fulltextPDF/embedded/6A8EOT78XXH2IG52?source=fedsrch