Дружелюбный русский алгоритмический язык, который обеспечивает наглядность сокращенно ДРАКОН — визуальный язык, созданный в СССР для космической программы «Буран». Его разработали для задач высокой ответственности, где ошибка недопустима. Основная цель ДРАКОН — сделать логику однозначной и понятной. Сегодня мне кажется, что ДРАКОН может обрести новую жизнь благодаря искусственному интеллекту. Я не встречал статей о его применении с ИИ, и поэтому решил написать об этом.
В этой статье я разберу практический кейс: от простого алгоритма до готового кода через JSON-представление и проверку логики. Задача будет элементарной, но цель — показать смысл такого подхода. В конце статьи приведу пример из сферы, не связанной с программированием и мы разберём его на примере работы с ДРАКОН.
Сейчас в разработке популярна практика «вайбкодинга»: программист описывает задачу на словах, а ИИ генерирует код. Иногда это срабатывает, но чаще приходится много раз объяснять, где нужны исправления и что следует проверить. Слова не всегда передают логику. Легко упустить важные проверки, граничные случаи и последовательность действий. В результате мы ловим баги на ровном месте, что только усложняет процесс разработки.
Алгоритмическое мышление помогает решать эту проблему. Визуальная логика убирает двусмысленности, которые не всегда удаётся уловить с помощью текста. С помощью ДРАКОН мы можем разбить задачу на чёткие шаги и увидеть все возможные ветки выполнения, а также то, что происходит в каждом случае. Этот инструмент позволяет описывать логику без неясностей.
Я давно думал о создании редактора, в котором можно было бы строить логику блоками, а код генерировался бы автоматически. Эпоха ИИ вдохновила меня вернуться к этой идее. ДРАКОН — это не просто способ алгоритмизации задачи, а понятный язык общения с моделями ИИ. Схема задаёт структуру, а ИИ отвечает за реализацию кода.
Что такое ДРАКОН и чем он полезен?
ДРАКОН позволяет визуально представить алгоритмы, делая их понятными и доступными. Он исключает двусмысленности и помогает разработчикам чётко формулировать свои мысли. Визуальное представление улучшает качество кода и упрощает коммуникацию как между людьми, так и между человеком и ИИ.
Если вы хотите создать понятный и надёжный код или написать структурированную статью, создать правило обработки входящих сообщений, то стоит обратить внимание на ДРАКОН. Существует несколько бесплатных редакторов ДРАКОН-схем, работающих как в онлайн, так и в оффлайн режимах. Думаю, каждый сможет подобрать вариант для себя.
Главные правила ДРАКОН:
Читается сверху вниз
Без пересекающихся стрелок
Единые блоки для условий, циклов и действий
Масштабирование детализации: от общей карты до конкретных шагов
Это удобно не только разработчикам. Любой процесс со строгими шагами легче объяснить через ДРАКОН: аналитика, медицина, образование, юриспруденция, инженерия и многое другое.
Пример: определение возрастной категории пользователя
Для примера я возьму простую задачу, понятную всем: «Определить возрастную категорию пользователя». Я хотел бы расписать классическую для программирования задачу коммивояжёра, но с ней становится слишком много кода. Моя цель — передать именно логику подхода, а не запрограммировать что-то сложное.

Логика задачи:
Спросить возраст.
Если возраст меньше 0 или больше 150 — попросить ввести снова.
-
Иначе проверить по порогам:
< 13 → «Ребёнок»
< 18 → «Подросток»
< 65 → «Взрослый»
Иначе → «Пожилой»
Вывести результат.
Такую схему удобно представить визуально в редакторе ДРАКОН. Она хранится в структурированном виде (JSON): у каждого блока есть тип (вопрос, действие, выбор), входы и выходы. Для человека это картинка, а для ИИ — точная спецификация, по которой можно сгенерировать код на Python, PHP, JS и других языках, без предположений о том, «что автор имел в виду».
Как AI «читает» ДРАКОН схемы
Модели ИИ могут:
Разобрать структуру (последовательности, ветвления, циклы).
Перевести блоки в код (вопрос → if, действие → присваивание/вызов, цикл → while/for).
Проверить логику (мертвые ветки, непокрытые случаи, лишние проверки).
Собрать документацию на естественном языке.

{
"items": {
"1": {
"type": "end"
},
"2": {
"type": "branch",
"branchId": 0,
"one": "5"
},
"4": {
"type": "question",
"content": "<p>Возраст меньше 0 и больше 150 </p>",
"one": "9",
"two": "5",
"flag1": 1
},
"5": {
"type": "arrow-loop",
"one": "16"
},
"6": {
"type": "case",
"one": "13",
"content": "<p>Возраст менее 65</p>",
"two": "10"
},
"7": {
"type": "case",
"one": "12",
"two": "6",
"content": "<p>Возраст менее 18</p>"
},
"8": {
"type": "case",
"one": "11",
"two": "7",
"content": "<p>Возраст менее 13</p>"
},
"9": {
"type": "select",
"one": "8",
"content": "<p>Проверка возраста</p>"
},
"10": {
"one": "14",
"type": "case",
"content": "<p>Возраст 65 и более</p>"
},
"11": {
"type": "action",
"content": "<p>Присвоить ранг «Ребёнок»</p>",
"one": "15"
},
"12": {
"type": "action",
"content": "<p>Присвоить ранг «Подросток»</p>",
"one": "15"
},
"13": {
"type": "action",
"content": "<p>Присвоить ранг «Взрослый»</p>",
"one": "15"
},
"14": {
"type": "action",
"content": "<p>Присвоить ранг «Пожилой»</p>",
"one": "15"
},
"15": {
"type": "simpleoutput",
"content": "<p>Вывести присвоенный ранг</p>",
"one": "1"
},
"16": {
"type": "simpleinput",
"content": "<p>Задать входящую переменную возраста</p>",
"one": "4"
}
},
"type": "drakon",
"id": "Демо для статьи.drakon"
}
Я пробовал разные LLM: ChatGPT, Cloude, Qwen, K2 — все они отлично понимают алгоритмы в виде JSON, и как результат, ДРАКОН становится мостом между замыслом и реализацией. Человек держит в руках логику, а машина — синтаксис и рутину.
Важно: Не все LLM принимают файлы с расширением .drakon. Поменяйте расширение файла на .txt, и ИИ гарантированно его примет.
Результат в виде кода Python
def get_age_rank():
while True:
try:
age = int(input("Введите возраст: "))
except ValueError:
print("Некорректный ввод. Пожалуйста, введите число.")
continue
if age < 0 or age > 150:
print("Возраст должен быть от 0 до 150. Попробуйте снова.")
continue
if age < 13:
rank = "Ребёнок"
elif age < 18:
rank = "Подросток"
elif age < 65:
rank = "Взрослый"
else:
rank = "Пожилой"
print(f"Присвоенный ранг: {rank}")
break
if __name__ == "__main__":
get_age_rank()
Результат в виде кода PHP
<?php
function getAgeRank() {
while (true) {
echo "Введите возраст: ";
$handle = fopen("php://stdin", "r");
$age = trim(fgets($handle));
fclose($handle);
if (!is_numeric($age)) {
echo "Некорректный ввод. Пожалуйста, введите число.\n";
continue;
}
$age = (int)$age;
if ($age < 0 || $age > 150) {
echo "Возраст должен быть от 0 до 150. Попробуйте снова.\n";
continue;
}
if ($age < 13) {
$rank = "Ребёнок";
} elseif ($age < 18) {
$rank = "Подросток";
} elseif ($age < 65) {
$rank = "Взрослый";
} else {
$rank = "Пожилой";
}
echo "Присвоенный ранг: $rank\n";
break;
}
}
getAgeRank();
Конечно, алгоритм слишком простой, но усложняя можно создать несколько связанных между собой блок-схем, можно делать тесты и придумать много других применений, я лишь хочу показать идею.
Где ещё это работает
Бизнес-процессы: заявки, согласования, логистика.
Медицина: протоколы диагностики и лечения.
Образование: учим детей думать алгоритмами без синтаксиса.
Юриспруденция: пошаговые процедуры применения норм.
Инженерия: аварийные инструкции и чек-листы.
Везде, где важна полнота и порядок, ДРАКОН спасает ИИ от лишних мыслей и предположений. Вы можете задать алгоритм обработки любых данных в понятном LLM формате и получить хорошую предсказуемость поведения.
Почему это важно сейчас
Генеративный код часто выглядит правдоподобно, но внутри могут быть дыры. Чёрный ящик не объясняет свои решения.
ДРАКОН возвращает контроль:
Мы видим все ветки и что случится в каждом случае.
Задаём валидации и «пути по умолчанию».
Передаём ИИ не «текст с идеями», а чёткую схему.
Это снижает риски и сюрпризы на продакшене.
Итог
ДРАКОН — язык честной логики. Он не даёт прятаться за общие фразы: показывайте шаги и связи. В паре с ИИ это работает так:
Человек формулирует структуру и ограничения.
ИИ пишет код, находит пробелы, предлагает улучшения.
Результат становится прозрачным и проверяемым.
Писать «по вайбу» можно. Но если хочется, чтобы система вела себя предсказуемо — лучше один раз собрать логику в ДРАКОН.
В качестве заключения, я хочу показать, что ДРАКОН применим не только в программировании. Давайте представим эту статью в виде алгоритмической структуры в ДРАКОН.


На втором скрине показал как К2 видит ДРАКОН-схему статьи, хотя она алгоритмически не совсем верна, ИИ нормально понял задачу и может написать статью. Для статей, конечно достаточно и простого списка, я просто хотел показать, что в ДРАКОН можно не только программировать
UPD:
В обсуждении появился лучший вариант применения ДРАКОН-схем:
К примеру, вы делаете телеграм-бота с ИИ. Обычная схема — написали промпт типа «обработай запрос пользователя корректно» и молитесь, чтобы ИИ не начал фантазировать.
А теперь другой подход. Расписываете в ДРАКОН'е весь алгоритм:
— Определи тип запроса: вопрос, жалоба, команда.
— Если вопрос — классифицируй по теме.
— Достань контекст из базы/FAQ.
— Сформируй ответ по шаблону.
— Проверь: нет выдуманных фактов? Если есть — пересобери.
Где это заходит лучше всего — в повторяющихся процессах:
— Модерация сообщений и жалоб.
— FAQ и поддержка.
— Разбор форм/заявок.
— Классификация тикетов.
Плюсы:
— Меньше галлюцинаций, предсказуемые ответы.
— Можно версионировать алгоритмы и делать A/B-тесты.
— Легче разбирать ошибки по шагам.
ДРАКОН выдаёт это в JSON, а LLM хорошо понимают такие промпты — схему можно сразу использовать как часть промпта.
Когда задача повторяющаяся — на отладку алгоритма не жалко потратить время. Циклично обрабатываете тысячи запросов? ДРАКОН-схема в промпте даёт ИИ чёткий план действий. Это уже оправдывает время на описание и отладку.
Плюс на выходе получаете алгоритм — значит, можете сравнивать разные версии, проводить A/B-тесты. Можно получить неплохой выигрыш в качестве.
Комментарии (12)
bondpuoq
08.10.2025 16:40Могли бы пояснить, почему именно дракон-схемы решили конвертировать, а не стандартные блок схемы? Не очень понятно, чем они нагляднее и понятнее и как именно метод такой визуальной организации информации может снизить вероятность ошибки по сравнению с блок-схемой, например, если человек, допустим, просто не мыслит системно и не разбирается в предметной области по которой составляет схему?
alan008
08.10.2025 16:40Раньше по коду рисовали блок-схему, а теперь ИИ по блок-схеме пишет код. Прогресс свернул не туда :-D
TimurZhoraev
08.10.2025 16:40Для языка, претендующего как инструмент общего назначения, самый лучший тест - это написать компилятор/интерпретатор Дракона на самом Драконе. Так называемые Self-Hosting языки. Тем более что здесь первично фактически абстрактное синтаксическое дерево (JSON для этого мало подходит из-за проблемы циклических ссылок) и алгоритм. Скорее для обучения ИИ больше подойдёт описание проверяемой последовательности действий или непосредственно абстрактного синтаксического дерева.
vasilisc
08.10.2025 16:40Для Linux систем в своё время упаковал drakon в snap. Если не являетесь хейтером snap, то welcome
daylightcat
08.10.2025 16:40Много, слишком много вопросов:
Почему ДРАКОН, а не любой другой способ записи алгоритмов: UML, BPMN, EPC, "тысячи их"?
Зачем отдавать схему "ненадежному" ИИ, когда есть специализированные решения для конвертации диаграмм в код?
Ну и зачем было "рисовать" на зыке описания алгоритмов структуру документа, для которой нужен язык разметки?
Ох...
itGuevara
08.10.2025 16:40когда есть специализированные решения для конвертации диаграмм в код?
в JS - какие?
daylightcat
08.10.2025 16:40а) я не утверждал, что "есть специализированные решения для конвертации" ЛЮБЫХ диаграмм в код на ЛЮБОМ языке.
MAXH0
Идея интересная. Надо дать школьникам пощупать границы применимости методов.
Компиляция блок-схемы в код на Python, конечно, выглядит как жесть. НО сама идея меня заинтересовала.
randomsimplenumber
Уже есть scratch.
А так, задачи, для которых в далекие 80е придуман Дракон, решаются наличием IDE. А для больших проектов Дракон непригоден чуть более чем полностью. Вот как будет выглядеть diff двух простыней ? Можно ли его приложить к третьей как patch?
mrMazai Автор
Спасибо! Я добавил в статью еще один способ применения с ИИ и он кажется более перспективным.