An Efficient and Scalable Platform for Java']Java Source Code Analysis Using Overlaid Graph Representations

被引:18
|
作者
Rodriguez-Prieto, Oscar [1 ]
Mycroft, Alan [2 ]
Ortin, Francisco [1 ,3 ]
机构
[1] Univ Oviedo, Dept Comp Sci, Oviedo 33007, Spain
[2] Univ Cambridge, Dept Comp Sci & Technol, Cambridge CB2 1TN, England
[3] Cork Inst Technol, Dept Comp Sci, Cork T12 P928, Ireland
关键词
!text type='Java']Java[!/text; Syntactics; Semantics; Tools; Databases; Ciphers; Database languages; Code analysis; graph database; coding guidelines; declarative query language; program representation; Cypher; Neo4j; STATIC ANALYSIS; LANGUAGE;
D O I
10.1109/ACCESS.2020.2987631
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Although source code programs are commonly written as textual information, they enclose syntactic and semantic information that is usually represented as graphs. This information is used for many different purposes, such as static program analysis, advanced code search, coding guideline checking, software metrics computation, and extraction of semantic and syntactic information to create predictive models. Most of the existing systems that provide these kinds of services are designed ad hoc for the particular purpose they are aimed at. For this reason, we created ProgQuery, a platform to allow users to write their own Java program analyses in a declarative fashion, using graph representations. We modify the Java compiler to compute seven syntactic and semantic representations, and store them in a Neo4j graph database. Such representations are overlaid, meaning that syntactic and semantic nodes of the different graphs are interconnected to allow combining different kinds of information in the queries/analyses. We evaluate ProgQuery and compare it to the related systems. Our platform outperforms the other systems in analysis time, and scales better to program sizes and analysis complexity. Moreover, the queries coded show that ProgQuery is more expressive than the other approaches. The additional information stored by ProgQuery increases the database size and associated insertion time, but these increases are significantly lower than the query/analysis performance gains obtained.
引用
收藏
页码:72239 / 72260
页数:22
相关论文
共 50 条
  • [1] A CASE tool platform - Using an XML representation of Java']Java source code
    Maruyama, K
    Yamamoto, S
    FOURTH IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2004, : 158 - 167
  • [2] Finding Source Code Clones in Intermediate Representations of Java']Java Bytecode
    Schaefer, Andre
    Heinze, Thomas S.
    Amme, Wolfram
    2023 IEEE 17TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES, IWSC 2023, 2023, : 37 - 43
  • [3] JxPlatform: A Tool Platform for Static Analysis of Java Source Code
    Maruyama, Katsuhisa
    Computer Software, 2024, 41 (04) : 28 - 48
  • [4] Indexing the Java']Java API using source code
    Ma, Homan
    Amor, Robert
    Tempero, Ewan
    ASWEC 2008: 19TH AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2008, : 451 - 460
  • [5] A CASE tool platform using an XML representation of java source code
    Department of Computer Science, Ritsumeikan University, 1-1-1 Noji-higashi, Kusatsu Shiga 525-8577, Japan
    不详
    不详
    Proc. Fourth IEEE Int. Workshop Source Code Anal. Manipulation, (158-167):
  • [6] Declarative Intraprocedural Flow Analysis of Java']Java Source Code
    Nilsson-Nyman, Emma
    Hedin, Gorel
    Magnusson, Eva
    Ekman, Torbjoern
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 238 (05) : 155 - 171
  • [7] Java']JavaML: a markup language for Java']Java source code
    Badros, GJ
    COMPUTER NETWORKS, 2000, 33 (1-6) : 159 - 177
  • [8] Java']Java Source Code Defect Detection
    Zhu, Hong
    Jin, Dahai
    2015 8TH INTERNATIONAL CONFERENCE ON BIOMEDICAL ENGINEERING AND INFORMATICS (BMEI), 2015, : 695 - 699
  • [9] GUI Structure and Behavior from Java']Java Source Code Analysis
    Gotti, Zineb
    Mbarki, Samir
    2016 4TH IEEE INTERNATIONAL COLLOQUIUM ON INFORMATION SCIENCE AND TECHNOLOGY (CIST), 2016, : 251 - 256
  • [10] Qualitative and Quantitative Analysis of Information Leakage in Java']Java Source Code
    Chen, Bo
    Xu, Da-wei
    Yu, Ling
    NSWCTC 2009: INTERNATIONAL CONFERENCE ON NETWORKS SECURITY, WIRELESS COMMUNICATIONS AND TRUSTED COMPUTING, VOL 2, PROCEEDINGS, 2009, : 338 - 342