Визуализация работы символьной машины в стиле gource

Gource --- утилита, позволяющая визуализировать историю развития репозитория с кодом в виде фильма. В её основе лежит библиотека для работы с графикой. Процесс символьного исполнения также можно изобразить как последовательное изменение некоторого графа (представления известной информации о программе). Его необходимо визуализировать, добавив возможность подробного изучения конкретных состояний. Для этого необходимо решить следующие задачи.

  • Разработать формат представления графа. Он должен быть достаточно универсальным, чтобы не зависеть от символьной машины.
  • Расширить возможности библиотеки визуализации. Например, нужна будет группировка узлов (узлы соответствуют различным методам в коде). Соответственно, нужны будут новые алгоритмы раскладки графа, новые графические компоненты, визуализация переходов (появился новый метод) и т.д.
  • Реализовать приложение, которое может не только непрерывно визуализировать процесс, но и выполнять его по шагам, просматривать информацию об узлах и т.д.
Требования к студенту
  • Уверенное знание C++.
  • Знание основ компьютерной графики, работы с шейдерами.
  • Алгоритмы раскладки графов.
  • Основы статического анализа кода: граф потока управления, граф потока данных, межпроцедурный анализ кода.
Уровень

3 курс, Бакалаврская ВКР, Магистерская ВКР


Руководитель

Григорьев Семен Вячеславович


Консультант

Grigorev Semyon


Источник

Кафедра системного программирования СПбГУ