A Multilanguage Static Analysis of Python Programs with Native C Extensions
Uloženo v:
| Název: | A Multilanguage Static Analysis of Python Programs with Native C Extensions |
|---|---|
| Autoři: | Raphaël Monat, orcid:0000-0001-8487-, Abdelraouf Ouadjaout, Antoine Miné |
| Informace o vydavateli: | Zenodo |
| Rok vydání: | 2021 |
| Sbírka: | Zenodo |
| Témata: | Static Analysis, Abstract Interpretation, Dynamic Programming Languages, Multilanguage Analysis |
| Popis: | 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. |
| Druh dokumentu: | software |
| Jazyk: | English |
| Relation: | https://zenodo.org/communities/sas-2021/; https://zenodo.org/communities/eu/; https://zenodo.org/records/5141314; oai:zenodo.org:5141314; https://doi.org/10.5281/zenodo.5141314 |
| DOI: | 10.5281/zenodo.5141314 |
| Dostupnost: | https://doi.org/10.5281/zenodo.5141314 https://zenodo.org/records/5141314 |
| Rights: | Creative Commons Attribution 4.0 International ; cc-by-4.0 ; https://creativecommons.org/licenses/by/4.0/legalcode |
| Přístupové číslo: | edsbas.B8DC76B3 |
| Databáze: | BASE |
| Abstrakt: | 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. |
|---|---|
| DOI: | 10.5281/zenodo.5141314 |
Nájsť tento článok vo Web of Science