SEAug 3, 2018

Lightweight Call-Graph Construction for Multilingual Software Analysis

arXiv:1808.01213v111 citations
Originality Incremental advance
AI Analysis

This addresses the challenge of analyzing multilingual codebases for software developers and analysts, though it appears incremental as it builds on prior MLSA architecture.

The paper tackles the problem of constructing monolingual call graphs for multilingual software analysis in a lightweight manner, proposing a novel approach that leverages compiler-generated ASTs and island grammars, with results showing it outperforms Doxgen and is robust to changes in the Clang AST.

Analysis of multilingual codebases is a topic of increasing importance. In prior work, we have proposed the MLSA (MultiLingual Software Analysis) architecture, an approach to the lightweight analysis of multilingual codebases, and have shown how it can be used to address the challenge of constructing a single call graph from multilingual software with mutual calls. This paper addresses the challenge of constructing monolingual call graphs in a lightweight manner (consistent with the objective of MLSA) which nonetheless yields sufficient information for resolving language interoperability calls. A novel approach is proposed which leverages information from a compiler-generated AST to provide the quality of call graph necessary, while the program itself is written using an Island Grammar that parses the AST providing the lightweight aspect necessary. Performance results are presented for a C/C++ implementation of the approach, PAIGE (Parsing AST using Island Grammar Call Graph Emitter) showing that despite its lightweight nature, it outperforms Doxgen, is robust to changes in the (Clang) AST, and is not restricted to C/C++.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes