Graduate School and Research Center in Digital Sciences

Spotting automatically cross-language relations

Tomassetti, Federico; Rizzo, Giuseppe; Torchiano, Marco

CSMR-WCRE 2014, IEEE Software Evolution Week, February 3-6, 2014, Antwerp, Belgium

Nowadays most of the software projects are coded using several formal languages, either spread on different artifacts or even embedded in the same one. These formal languages are linked each other using cross-language relations, mainly framework specific and established at runtime. In this work we present a language agnostic approach to automatically detect cross-language relations to ease refactoring, validation and to allow navigation support to the developer. We map a project in a set of Abstract Syntax Trees (ASTs); pair-wise we compute the intersection of the nodes and we pre-select potential candidates that can hold cross-relations. We then factorize the ASTs according to the nodes which surround the candidate and pairwise we compute the semantic similarity of the factorized trees. We narrow down a set of statistically significant features and we map them into a predictive model. We apply such a procedure to an AngularJS application and we show that this approach spots cross-language relations at fine grained level with 93.2% of recall and a F-measure of 92.2%

Document Doi Bibtex

Title:Spotting automatically cross-language relations
Department:Data Science
Eurecom ref:4195
Copyright: © 2014 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
Bibtex: @inproceedings{EURECOM+4195, doi = {}, year = {2014}, title = {{S}potting automatically cross-language relations}, author = {{T}omassetti, {F}ederico and {R}izzo, {G}iuseppe and {T}orchiano, {M}arco}, booktitle = {{CSMR}-{WCRE} 2014, {IEEE} {S}oftware {E}volution {W}eek, {F}ebruary 3-6, 2014, {A}ntwerp, {B}elgium}, address = {{A}ntwerp, {BELGIUM}}, month = {02}, url = {} }
See also: