There is a newer version of the record available.

Published July 28, 2021 | Version v1.0-submitted
Software Open

A Multi-Language Static Analysis of Python Programs with Native C Extensions

  • 1. LIP6, Sorbonne Université & CNRS
  • 2. LIP6, Sorbonne Université & CNRS; Institut Universitaire de France

Description

This is the artefact accompanying the research paper "A Multi-Language Static Analysis of Python Programs with Native C Extensions". It consists in a `README.md` file describing how to use the docker image `sas21_8.tar`

 

Abstract of the research paper:
Modern programs are increasingly multilanguage, to benefit from each programming language's advantages and to reuse libraries. For example, developers may want to combine high-level Python code with low-level, performance-oriented C code. In fact one in five of the 200 most-downloaded Python libraries available on GitHub contains C code. Static analyzers tend to focus on a single language, and may use stubs to model the behavior of foreign function calls. However, stubs are costly to implement and undermine soundness of analyzers. In this work we design a static analyzer by abstract interpretation that can handle Python programs calling C extensions. 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. This approach allows sharing between abstract domains of different languages. Our analyzer can tackle tests of real-world libraries a few thousand lines of C and Python long.

Files

README.md

Files (2.8 GB)

Name Size Download all
md5:766ede1db09b72821f69f374924758a6
10.6 kB Preview Download
md5:7734d8feb0ef18a889da8b9c76b68312
2.8 GB Download

Additional details

Funding

MOPSA – Modular Open Platform for Static Analysis 681393
European Commission