Что такое blocshema — генератор блок-схем из кода

blocshema — генератор блок-схем онлайн: он превращает исходный код в структурную схему выполнения по ГОСТ 19.701-90 (ISO 5807). Вставьте код — получите схему программы, которую можно рассмотреть, скачать в PDF, PNG или SVG и приложить к документации.

Как это устроено

Разбор кода и раскладка схемы считаются на сервере: строится граф выполнения, а затем раскладка — с линиями, подписями ветвей и страницами листа. Браузер только показывает результат и выгружает его в файл.

Формы символов заданы разделом 3 стандарта: схема нарисованная не значит произвольная. Пропорции фигур сняты по рисункам ГОСТ 19.701-90 и живут в одном месте — поэтому каталог фигур и сама схема рисуются одинаково.

Формат листа выбирает раскладка, а не человек: сначала A4, а если блок символов в него не влезает — следующий по величине (A3, затем A2). Печатать схему на другом формате нельзя, блоки уедут за поля.

Какие языки

Сейчас генератор блок-схем по языку программирования работает с четырьмя языками: JavaScript, TypeScript, Python и C. Код на TypeScript принимается и как JavaScript.

Пока язык не выбран руками, он определяется по самому тексту: если код выдан за другой язык, разбор откажется, а не нарисует мусор. Что именно разбирается в каждом языке — написано в сноске под таблом.

Чего сервис не делает

  • Не выполняет код — он разбирается, а не запускается.
  • Не показывает значения переменных: схема передаёт структуру выполнения, а не данные.
  • Не разворачивает тела вызываемых функций и классов: вызов остаётся одним символом с подписью.
  • Не берёт код длиннее 30 000 символов: на таком объёме схема уже не читается даже на листе A2.

Код и данные

Исходный код обрабатывается только для построения схемы и не сохраняется после генерации. Подробнее — в политике конфиденциальности.

Поддержка

Обращения принимаются через форму ниже: она уходит прямо на сервер, и в журнале остаётся текст обращения. Имя и почта необязательны — их нужно только тогда, когда нужен ответ.

Вопросы о персональных данных и о работе сервиса можно отправить тем же способом — порядок обработки обращений описан в политике конфиденциальности.