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 条
  • [21] Package Templates: A Definition by Semantics-Preserving Source-to-Source Transformations to Efficient Java']Java Code
    Axelsen, Eyvind W.
    Krogdahl, Stein
    ACM SIGPLAN NOTICES, 2013, 48 (03) : 50 - 59
  • [22] JGAP: a Java']Java-based graph algorithms platform
    Chen, DY
    Chuang, TR
    Tsai, SC
    SOFTWARE-PRACTICE & EXPERIENCE, 2001, 31 (07): : 615 - 635
  • [23] Java']JavaCompExt: Extracting Architectural Elements from Java']Java Source Code
    Anquetil, Nicolas
    Royer, Jean-Claude
    Andre, Pascal
    Ardourel, Gilles
    Hnetynka, Petr
    Poch, Tomas
    Petrascu, Dragos
    Petrascu, Vladiela
    16TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE 2009), 2009, : 317 - +
  • [24] A novel code representation for detecting Java']Java code clones using high-level and abstract compiled code representations
    Quradaa, Fahmi H.
    Shahzad, Sara
    Saeed, Rashad
    Sufyan, Mubarak M.
    PLOS ONE, 2024, 19 (05):
  • [25] A Comparative Analysis of Static Code Analysis Tools that check Java']Java Code Adherence to Java']Java Coding Standards
    Ashfaq, Qirat
    Khan, Rimsha
    Farooq, Sehrish
    2019 2ND INTERNATIONAL CONFERENCE ON COMMUNICATION, COMPUTING AND DIGITAL SYSTEMS (C-CODE), 2019, : 98 - 103
  • [26] Building scalable and high efficient Java']Java multimedia collaboration
    Wu, Wenjun
    Huang, Tao
    Fox, Geoffrey
    2006 INTERNATIONAL SYMPOSIUM ON COLLABORATIVE TECHNOLOGIES AND SYSTEMS, PROCEEDINGS, 2006, : 18 - +
  • [27] Code coverage differences of Java']Java bytecode and source code instrumentation tools
    Horvath, Ferenc
    Gergely, Tamas
    Beszedes, Arpad
    Tengeri, David
    Balogh, Gergo
    Gyimothy, Tibor
    SOFTWARE QUALITY JOURNAL, 2019, 27 (01) : 79 - 123
  • [28] A Systematic Literature Review: Code Bad Smells in Java']Java Source Code
    Gupta, Aakanshi
    Suri, Bharti
    Misra, Sanjay
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2017, PT V, 2017, 10408 : 665 - 682
  • [29] Generating Multi-Variant Java']Java Source Code Using Generic Aspects
    Greiner, Sandra
    Westfechtel, Bernhard
    PROCEEDINGS OF THE 6TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT, 2018, : 36 - 47
  • [30] Research on Java']Java Automatic Simplified Modeling Based on Source Code Dependency Analysis
    Wang, Jiaqi
    Sung, Tao
    Zhong, Wenjie
    Wang, Ziyu
    Zhang, Yefan
    PROCEEDINGS OF THE 2024 27 TH INTERNATIONAL CONFERENCE ON COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN, CSCWD 2024, 2024, : 2116 - 2121