Luca Negrini
Logo

Luca Negrini

static-analysis  abstract-interpretation  multilanguage-analysis

Publication: LiSA: A Generic Framework for Multilanguage Static Analysis

L. Negrini, P. Ferrara, V. Arceri, A. Cortesi

Challenges of Software Verification, Intelligent Systems Reference Library (CSV 2023)
July 22, 2023
Book chapter

Abstract

Modern software engineering revolves around distributed applications. From IoT networks to client-server infrastructures, the application code is increasingly being divided into separate sub-programs interacting with each other. As they are completely independent from each other, each such program is likely to be developed in a separate programming language, choosing the best fit for the task to at hand. From a static program analysis perspective, taking on a mixture of languages is challenging. This paper defines a generic framework where modular multilanguage static analyses can be defined through the abstract interpretation theory. The framework has been implemented in LiSA (Library for Static Analysis), an open-source Java library that provides the complete infrastructure necessary for developing static analyzers. LiSA strives to be modular, ensuring that all components taking part in the analysis are both easy to develop and highly interchangeable. LiSA also ensures that components are parametric to all language-specific features: semantics, execution model, and memory model are not directly encoded within the components themselves. A proof-of-concept instantiation is provided, demonstrating LiSA’s capability to analyze multiple languages in a single analysis through the discovery of an IoT vulnerability spanning C++ and Java code.

Manuscript: PDF
Associated project: LiSA
Springer page: Link