Граф управления потоком (Control Flow Graph, CFG) – это граф, где узлы представляют базовые блоки кода, а ребра представляют переходы между ними. В статическом анализе кода, CFG может быть использован для обнаружения потенциальных проблем в коде. Например, CFG может помочь выявить «мертвый» код (код, который может быть исполнен, но результаты его вычислений не влияют на дальнейшую программу) или недостижимые части программы. CFG также может быть использован для оптимизации кода. Например, CFG может помочь выявить повторяющиеся участки кода, которые могут быть заменены на вызов функции. CFG используется во многих языках программирования, в том числе в C, C++, Java, Python и других. Они могут быть созданы вручную или автоматически с помощью инструментов, таких как библиотека Staticfg на языке Python.