Towards Multi-Language Static Code Analysis

Sanaa Siddiqui, Ravindra Metta, Kumar Madhukar · 2023

Industrial software systems are composed of components implemented in different programming languages, which are often analyzed for potential errors using static analysis engines. While these components frequently evolve due to addition of new features in, and migration to, newer programming languages, the program analysis engines do not correspondingly evolve to support the newer languages. Thus, static analyzers often are incapable of providing comprehensive analysis for evolving software systems. This limitation is difficult to address because (1) building a scalable static analyzer for a programming language requires enormous engineering efforts, and (2) reusing an existing static analyzer is hard due to the different programming models of different languages. To address this, we propose a hybrid translation architecture that uses both the source program AST and low-level IR to efficiently analyze multi-language systems, leveraging existing analyzers while accommodating language-specific semantics and potential loss of exhibited behaviors.

Read the paper · More papers on PaperTik