Repository logo
 

An efficient and scalable platform for java source code analysis using overlaid graph representations

Published version
Peer-reviewed

Type

Article

Change log

Authors

Rodriguez-Prieto, O 
Mycroft, A 

Abstract

© 2013 IEEE. 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.

Description

Keywords

Java, Syntactics, Semantics, Tools, Databases, Ciphers, Database languages, Code analysis, graph database, coding guidelines, declarative query language, program representation, Cypher, Java, Neo4j

Journal Title

IEEE Access

Conference Name

Journal ISSN

2169-3536
2169-3536

Volume Title

8

Publisher

Institute of Electrical and Electronics Engineers (IEEE)
Sponsorship
Spanish Department of Science, Innovation and Universities under Project RTI2018-099235-B-I00.