A Multilanguage Static Analysis of Python/C Programs with Mopsa

Mopsa is a conservative static analysis platform, independent of language and abstraction choices. Developers are free to add arbitrary abstractions (numeric, pointer, memory, etc.) and syntax iterators for new languages. Mopsa encourages the development of independent abstractions which can cooperate or be combined to improve precision. In this talk, we will show how Mopsa analyses Python programs calling C libraries. It analyses directly and fully automatically both the Python and the C source codes. It reports runtime errors that may happen in Python, in C, and at the interface. We implemented our analysis in a modular fashion: it reuses off-the-shelf C and Python analyses written in the same analyzer. Our analyzer can tackle tests of real-world libraries a few thousand lines of C and Python long.

Raphaël Monat obtained his PhD in 2021 at LIP6, Sorbonne Université, France, in the field of formal methods. He is currently a temporary research and teaching assistant at the same university. His general research interest lies in the development and application of formal methods to real-world problems. During his PhD, he focused on the semantics and the static analyses of Python. The latter have been implemented within a novel static analysis platform called Mopsa. He also worked on reverse-engineering the French tax code and developing a new compiler for it, which will soon be used by the French state.