Was ist der einfachste Weg, ein Control Flow-Graph für eine Methode in Python zu generieren?

10

Ich schreibe ein Programm, das versucht, zwei Methoden zu vergleichen. Ich möchte Control Flow Graphs (CFG) für alle übereinstimmenden Methoden generieren und entweder eine topologische Sortierung zum Vergleich der beiden Graphen verwenden.

    
user739807 01.06.2011, 16:59
quelle

2 Antworten

3

RPython , die Übersetzungswerkzeugkette hinter PyPy bietet eine Möglichkeit, das Flussdiagramm (im pypy/rpython/flowspace Verzeichnis des PyPy-Projekts) für Typ-Inferenz .

Dies funktioniert in den meisten Fällen ziemlich gut, aber Generatoren werden nicht unterstützt. Das Ergebnis wird in SSA-Form sein, was gut oder schlecht sein kann, je nachdem, was Sie wollen.

    
KushalP 01.06.2011 17:09
quelle
-1

Ссылка sieht aus wie Sie es brauchen.

Das Python-Trace -Modul verfügt auch über die Option --trackcalls , die ein Einstiegspunkt für Anrufverfolgungsmaschinen in stdlib sein kann.

    
anatoly techtonik 06.06.2012 16:42
quelle

Tags und Links