Online-Veranstaltung  /  27. März 2021

Virtuelle Tagung: ICCQ - Qualitative und Quantitative Analyse von Callgraph-Algorithmen für PYTHON

Die First International Conference on Code Quality (ICCQ) ist eine eintägige Computer Science-Veranstaltung, die in Zusammenarbeit mit dem IEEE Russia Section C Chapter organisiert wird und sich mit statischer Analyse, Programmverifikation, Fehlererkennung und Softwarewartung beschäftigt.

  • 13:30 Uhr Sriteja Kummita (Fraunhofer IEM) hält einen Vortrag über qualitative und quantitative Analyse von Callgraph-Algorithmen für PYTHON

Als eine der beliebtesten Programmiersprachen ist Python zu einer relevanten Zielsprache für statische Analysewerkzeuge geworden. Die primäre Datenstruktur für die Durchführung einer prozedurübergreifenden statischen Analyse ist der Callgraph (CG), der Aufrufstellen mit potenziellen Aufrufzielen in einem Programm verbindet. Es existieren mehrere Algorithmen zur Konstruktion von Callgraphs, die auf bestimmte Sprachen zugeschnitten sind. Es gibt jedoch vergleichsweise wenige Implementierungen für Python. Außerdem fehlt es noch an empirischen Belegen, wie diese wenigen Algorithmen in Bezug auf Präzision und Recall abschneiden. In diesem Beitrag wird daher eval_CG vorgestellt, ein erweiterbares Framework zur vergleichenden Analyse von Python-Kallgraphen. Wir haben zwei Experimente durchgeführt, die die CG-Algorithmen auf verschiedenen Python-Programmierkonstrukten und realen Anwendungen laufen lassen. In beiden Experimenten evaluieren wir drei CG-Generierungs-Frameworks, nämlich Code2flow, Pyan und Wala. Wir zeichnen Präzision, Recall und Laufzeit auf und identifizieren Quellen der Unzulänglichkeit jedes Frameworks. Unsere Evaluierung zeigt, dass keines der aktuellen CG-Konstruktions-Frameworks eine solide CG erzeugt. Außerdem enthalten die statischen CGs viele fehlerhafte Kanten. Code2flow ist außerdem vergleichsweise langsam. Daher ist weitere Forschung erforderlich, um die CG-Generierung für Python-Programme zu unterstützen.