RUO Principal

Repositorio Institucional de la Universidad de Oviedo

Ver ítem 
  •   RUO Principal
  • Investigación
  • Datos de investigación
  • Ver ítem
  •   RUO Principal
  • Investigación
  • Datos de investigación
  • Ver ítem
    • español
    • English
JavaScript is disabled for your browser. Some features of this site may not work without it.

Listar

Todo RUOComunidades y ColeccionesPor fecha de publicaciónAutoresTítulosMateriasxmlui.ArtifactBrowser.Navigation.browse_issnPerfil de autorEsta colecciónPor fecha de publicaciónAutoresTítulosMateriasxmlui.ArtifactBrowser.Navigation.browse_issn

Mi cuenta

AccederRegistro

Estadísticas

Ver Estadísticas de uso

AÑADIDO RECIENTEMENTE

Novedades
Repositorio
Cómo publicar
Recursos
FAQs

Data from the article: An Efficient and Scalable Platform for Java Source Code Analysis using Overlaid Graph Representations

Autor(es) y otros:
Rodríguez Prieto, ÓscarAutoridad Uniovi; Mycroft, Alan; Ortín Soler, FranciscoAutoridad Uniovi
Palabra(s) clave:

code analysis

graph database

coding guidelines

declarative query language

program representation

Cypher

Java

Neo4j

Fecha de publicación:
2020-02-24
Resumen:

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.

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.

Descripción:

Data from the article "O. Rodriguez-Prieto, A. Mycroft, F. Ortin. An Efficient and Scalable Platform for Java Source Code Analysis using Overlaid Graph Representations. IEEE Access (8), pp. 72239-72260, 2020. https://doi.org/10.1109/ACCESS.2020.2987631"

URI:
https://hdl.handle.net/10651/76098
DOI:
10.17811/ruo_datasets.76098
Enlace a recurso relacionado:
http://hdl.handle.net/10651/54284
Patrocinado por:

This work has been partially funded by the Spanish Department of Science, Innovation and Universities: project RTI2018-099235-B-I00. The first and third authors have also received funds from the University of Oviedo through its support to official research groups (GR-2011-0040).

Colecciones
  • Datos de investigación [70]
Ficheros en el ítem
untranslated
Readme (3.536Kb)
untranslated
Dataset (100.2Mb)
Métricas
Compartir
Exportar a Mendeley
Estadísticas de uso
Estadísticas de uso
Metadatos
Mostrar el registro completo del ítem
Página principal Uniovi

Biblioteca

Contacto

Facebook Universidad de OviedoTwitter Universidad de Oviedo
El contenido del Repositorio, a menos que se indique lo contrario, está protegido con una licencia Creative Commons: Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Creative Commons Image