глоссарий

DSL generation

DSL generation

DSL generation — автоматическое создание предметно-ориентированных языков для конкретной области, например бухгалтерии или лабораторной диагностики. Вместо ручного написания синтаксиса и компилятора система строит язык по примерам или формальному описанию: машине можно показать несколько диалогов, и она выведет недостающие правила.

Термин важен, потому что специалистам узких областей нужны инструменты на их языке, а ручная разработка каждого DSL — долгий и дорогой процесс. Генерация сокращает его до минимума: пользователь описывает желаемое поведение, алгоритм выдаёт готовый инструмент. Это открывает путь к персонализации софта, где программа подстраивается под процессы.

Интуитивно это похоже на обучение по примерам. Если показать школьнику диалоги «Сколько дней до отпуска?» — «14» и «Через сколько поезд?» — «45 минут», он уловит, что общие слова — команды, а числа — данные, и сам выведет правило для новых вопросов. Генератор так же получает пары «запрос — результат» и выдаёт парсер и транслятор для похожих выражений.

Конкретный пример: финансистам нужен язык проверки счетов. Они дают генератору образцы «Накладная №123, сумма 5000, статус сомнительная» с пояснением, что это ошибка из-за расхождения с реестром. Система выводит грамматику и правила, и сотрудники могут вводить новые накладные для автоматической проверки, не дожидаясь программиста.

Итог: DSL generation — мост между замыслом и готовым инструментом. Он не заменяет программистов, но освобождает их от рутины и ускоряет создание точных решений. Это шаг к тому, чтобы маленькие языки создавались так же легко, как макросы в таблицах, но с настоящей грамматикой и логикой.