用于多语言软件分析的轻量级调用图构建
软件工程
2018-08-06 v1
摘要
多语言代码库的分析是日益重要的课题。在先前工作中,我们提出了 MLSA(多语言软件分析)架构,一种对多语言代码库进行轻量级分析的方法,并展示了其如何应对从具有互调用的多语言软件构建单一调用图的挑战。本文致力于以轻量级方式(与 MLSA 目标一致)构建单语言调用图,同时提供足以解析语言互操作调用所需的信息。提出了一种新方法,利用编译器生成的 AST(抽象语法树)中的信息以提供必要的调用图质量,而程序本身使用 Island Grammar(孤岛文法)编写,解析该 AST 从而实现所需的轻量级特性。给出了该方法 C/C++ 实现 PAIGE(使用孤岛文法解析 AST 的调用图生成器)的性能结果,表明尽管其轻量,却优于 Doxgen,对(Clang)AST 的变化具有鲁棒性,且不限于 C/C++。
引用
@article{arxiv.1808.01213,
title = {Lightweight Call-Graph Construction for Multilingual Software Analysis},
author = {Anne Marie Bogar and Damian M. Lyons and David Baird},
journal= {arXiv preprint arXiv:1808.01213},
year = {2018}
}
备注
10 pages