INTERACTIVE LAB / XSLT · DOT · SVG

Control Flow Graph для Simple

Введите программу, запустите обработку и получите граф потока управления. До настройки компилятора запрос использует приложенный AST-пример.

Simple source
func is_prime(N: Int): Bool if N <= 1 then return false; end; return true; end func main() print is_prime(29); end
Готово к запуску
CFG / SVG output
100%

Граф появится здесь после запуска.

Цель

Проверить, насколько XSLT подходит для автоматического построения графа потока управления по XML-представлению AST программ языка Simple.

Методология

  1. Компилятор Simple строит AST в XML. Пока путь к компилятору не настроен, используется приложенная заглушка AST.
  2. XslCompiledTransform преобразует AST в DOT — язык описания графов Graphviz.
  3. Утилита dot получает DOT через стандартный ввод и выводит SVG, который отображается на странице.

Выводы

XSLT удобен для рекурсивного обхода дерева и формирования подписей узлов. Сложные ветвления и циклы требуют аккуратных шаблонов; поэтому серверная версия отделяет шаблон от данных AST и поручает отрисовку Graphviz.

Материалы проекта

Отчёт по практике
Скачать