---
_id: '23388'
abstract:
- lang: eng
  text: As one of the most popular programming languages, PYTHON has become a relevant
    target language for static analysis tools. The primary data structure for performing
    an inter-procedural static analysis is call-graph (CG), which links call sites
    to potential call targets in a program. There exists multiple algorithms for constructing
    callgraphs, tailored to specific languages. However, comparatively few implementations
    target PYTHON. Moreover, there is still lack of empirical evidence as to how these
    few algorithms perform in terms of precision and recall. This paper thus presents
    EVAL_CG, an extensible framework for comparative analysis of Python call-graphs.
    We conducted two experiments which run the CG algorithms on different Python programming
    constructs and real-world applications. In both experiments, we evaluate three
    CG generation frameworks namely, Code2flow, Pyan, and Wala. We record precision,
    recall, and running time, and identify sources of unsoundness of each framework.
    Our evaluation shows that none of the current CG construction frameworks produce
    a sound CG. Moreover, the static CGs contain many spurious edges. Code2flow is
    also comparatively slow. Hence, further research is needed to support CG generation
    for Python programs.
author:
- first_name: Sriteja
  full_name: Kummita, Sriteja
  id: '72582'
  last_name: Kummita
- first_name: Goran
  full_name: Piskachev, Goran
  id: '41936'
  last_name: Piskachev
  orcid: 0000-0003-4424-5838
- first_name: Johannes
  full_name: Spaeth, Johannes
  last_name: Spaeth
- first_name: Eric
  full_name: Bodden, Eric
  id: '59256'
  last_name: Bodden
  orcid: 0000-0003-3470-3647
citation:
  ama: 'Kummita S, Piskachev G, Spaeth J, Bodden E. Qualitative and Quantitative Analysis
    of Callgraph Algorithms for PYTHON. In: <i>Proceedings of the 2021 International
    Conference on Code Quality (ICCQ)</i>. ; 2021. doi:<a href="https://doi.org/10.1109/ICCQ51190.2021.9392986">10.1109/ICCQ51190.2021.9392986</a>'
  apa: Kummita, S., Piskachev, G., Spaeth, J., &#38; Bodden, E. (2021). Qualitative
    and Quantitative Analysis of Callgraph Algorithms for PYTHON. In <i>Proceedings
    of the 2021 International Conference on Code Quality (ICCQ)</i>. Virtual. <a href="https://doi.org/10.1109/ICCQ51190.2021.9392986">https://doi.org/10.1109/ICCQ51190.2021.9392986</a>
  bibtex: '@inproceedings{Kummita_Piskachev_Spaeth_Bodden_2021, title={Qualitative
    and Quantitative Analysis of Callgraph Algorithms for PYTHON}, DOI={<a href="https://doi.org/10.1109/ICCQ51190.2021.9392986">10.1109/ICCQ51190.2021.9392986</a>},
    booktitle={Proceedings of the 2021 International Conference on Code Quality (ICCQ)},
    author={Kummita, Sriteja and Piskachev, Goran and Spaeth, Johannes and Bodden,
    Eric}, year={2021} }'
  chicago: Kummita, Sriteja, Goran Piskachev, Johannes Spaeth, and Eric Bodden. “Qualitative
    and Quantitative Analysis of Callgraph Algorithms for PYTHON.” In <i>Proceedings
    of the 2021 International Conference on Code Quality (ICCQ)</i>, 2021. <a href="https://doi.org/10.1109/ICCQ51190.2021.9392986">https://doi.org/10.1109/ICCQ51190.2021.9392986</a>.
  ieee: S. Kummita, G. Piskachev, J. Spaeth, and E. Bodden, “Qualitative and Quantitative
    Analysis of Callgraph Algorithms for PYTHON,” in <i>Proceedings of the 2021 International
    Conference on Code Quality (ICCQ)</i>, Virtual, 2021.
  mla: Kummita, Sriteja, et al. “Qualitative and Quantitative Analysis of Callgraph
    Algorithms for PYTHON.” <i>Proceedings of the 2021 International Conference on
    Code Quality (ICCQ)</i>, 2021, doi:<a href="https://doi.org/10.1109/ICCQ51190.2021.9392986">10.1109/ICCQ51190.2021.9392986</a>.
  short: 'S. Kummita, G. Piskachev, J. Spaeth, E. Bodden, in: Proceedings of the 2021
    International Conference on Code Quality (ICCQ), 2021.'
conference:
  location: Virtual
  name: International Conference on Code Quality (ICCQ)
  start_date: 2021-03-27
date_created: 2021-08-12T14:00:54Z
date_updated: 2022-01-06T06:55:52Z
doi: 10.1109/ICCQ51190.2021.9392986
keyword:
- Static Analysis
- Callgraph Analysis
- Python
- Qualitative Analysis
- Quantitative Analysis
- Empirical Evaluation
language:
- iso: eng
main_file_link:
- url: https://ieeexplore.ieee.org/document/9392986
publication: Proceedings of the 2021 International Conference on Code Quality (ICCQ)
publication_identifier:
  isbn:
  - 978-1-7281-8477-7
publication_status: published
status: public
title: Qualitative and Quantitative Analysis of Callgraph Algorithms for PYTHON
type: conference
user_id: '72582'
year: '2021'
...
