ДЕКЛАРАТИВНЫЙ
ДЕКЛАРАТИ́ВНЫЙ, декларативная, декларативное; декларативен, декларативна, декларативно (книжн.). прил. к декларация в 1 знач.; торжественный, объявляемый в порядке осведомления. Это заявлено в декларативной форме.
Толковый словарь Ушакова . Д.Н. Ушаков. 1935-1940 .
Синонимы:
Смотреть что такое «ДЕКЛАРАТИВНЫЙ» в других словарях:
- декларативный — внешний, торжественный, показной, словесный Словарь русских синонимов. декларативный прил., кол во синонимов: 4 • внешний (33) • … Словарь синонимов
- декларативный — ая, ое. déclarartif, ve adj. Торжественный, объявляемый в порядке осведомления. Это заявлено в декларативной форме. Уш. 1934. || Связанный с декларацией, излагающий какую л. программу действий (обычно без достаточного обоснования). Деклративное… … Исторический словарь галлицизмов русского языка
- ДЕКЛАРАТИВНЫЙ — ДЕКЛАРАТИВНЫЙ, ая, ое; вен, вна (книжн.). 1. полн. Имеющий форму декларации (во 2 знач.), торжественный. Д. тон. 2. Чисто словесный, внешний. Обещания носят д. характер. | сущ. декларативность, и, жен. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю.… … Толковый словарь Ожегова
- Декларативный язык программирования — язык программирования высокого уровня, построенный: на описании данных; и на описании искомого результата. Декларативные языки подразделяются на функциональные и логические языки. См. также: Декларативные языки программирования Языки… … Финансовый словарь
- декларативный язык — Язык программирования для выражения определений. Примечание В качестве такого языка часто выступает язык описания данных. [ГОСТ 19781 90] декларативный язык непроцедурный язык Язык программирования, который задает отношения между объектами, но не … Справочник технического переводчика
- Декларативный язык — 34. Декларативный язык Declarative language Язык программирования для выражения определений. Примечание. В качестве такого языка часто выступает язык описания данных Источник: ГОСТ 19781 90: Обеспечение систем обработки информации программное.… … Словарь-справочник терминов нормативно-технической документации
- Декларативный — I прил. 1. соотн. с сущ. декларация I, связанный с ним 2. Имеющий форму декларации [декларация I], носящий характер декларации; торжественный. II прил. 1. соотн. с сущ. декларация II, связанный с ним 2. Содержащийся в декларации [декларация II].… … Современный толковый словарь русского языка Ефремовой
- декларативный — декларативный, декларативная, декларативное, декларативные, декларативного, декларативной, декларативного, декларативных, декларативному, декларативной, декларативному, декларативным, декларативный, декларативную, декларативное, декларативные,… … Формы слов
- декларативный — декларат ивный; кратк. форма вен, вна … Русский орфографический словарь
- декларативный — кр.ф. декларати/вен, декларати/вна, вно, вны; декларати/внее … Орфографический словарь русского языка
- Обратная связь: Техподдержка, Реклама на сайте
- Путешествия
Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.
- Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
- Искать во всех словарях
- Искать в переводах
- Искать в ИнтернетеИскать в этой же категории
Поделиться ссылкой на выделенное
Прямая ссылка:
… Нажмите правой клавишей мыши и выберите «Копировать ссылку»
Русский править
Корень: -деклар-; суффиксы: -ат-ивн; окончание: -ый [Тихонов, 1996] .
Произношение править
- МФА: [ dʲɪkɫərɐˈtʲivnɨɪ̯ ]
Семантические свойства править
Значение править
- книжн.имеющий форму декларации, торжественный ◆ Заключительный акт совещания в Хельсинки вновь подтвердил принципы свободы убеждений. Но требуется большая и упорная борьба, чтобы эти положения акта имели не только декларативное значение. А. Д. Сахаров, «Нобелевская лекция „Мир. Прогресс. Права человека“», 1975 г. [НКРЯ] ◆ Даже простое «Я люблю» бывало иногда настолько неконкретным, настолько декларативным , что звучало, как «Мы любим». Е. А. Евтушенко, «Волчий паспорт», 1999 г. [НКРЯ]
- неодобр.чистословесный, внешний ◆ Советские инициативы имели по преимуществу декларативный характер, а практические решения представляли собой лишь запоздалую реакцию на действия западных держав. М. С. Горбачёв, «Как это было. Объединение Германии», 1999 г. [НКРЯ] ◆ Люди готовы поступиться декларативными , часто нарушаемыми правами в обмен на реальные жизненные блага в виде работы и средств к существованию. «Возможно ли в России уменьшить теневую занятость?», 2004 г. // «Вопросы статистики» [НКРЯ]
Синонимы править
- торжественный
- частичн.: демагогический
Антонимы править
- ?
- письменный (См.“Словарь антонимов русского языка” М. Р. Львова под редакцией Л. А. Новикова)
Гиперонимы править
Гипонимы править
Родственные слова править
Этимология править
От лат. declarativus «разъясняющий, объяснительный», далее из declarare «заявлять; изъявлять, выражать», далее из de- + clarare;
- первая часть — из de- «выражает отделение, устранение, отсутствие чего-либо или завершение действия», далее от de «из, от», из праиндоевр. *de- ;
- вторая часть — из clarare «делать светлым, ясным, освещать; объяснять», далее из clarus «ясный, светлый», далее из праиндоевр. *k(e)le-, *(s)kale- «кричать, звать» (ср.: слав. *kolkolъ, *skolītī; балт. *kal̃-b-ā̂; герм. *xill-a-; лат. calāre, clāmāre).
Фразеологизмы и устойчивые сочетания править
Декларативный подход к планированию оборота товаров для малых предприятий Текст научной статьи по специальности «Экономика и бизнес»
ПЛАНИРОВАНИЕ ЗАКУПОК / ABC-АНАЛИЗ / XYZ-АНАЛИЗ / ПРОГРАММИРОВАНИЕ В ОГРАНИЧЕНИЯХ / ЗАДАЧА УДОВЛЕТВОРЕНИЯ ОГРАНИЧЕНИЙ / КОМБИНАТОРНЫЙ ПОИСК / КОМБИНАТОРНАЯ ОПТИМИЗАЦИЯ / PROCUREMENT PLANNING / ABC-ANALYSIS / XYZ-ANALYSIS / CONSTRAINT PROGRAMMING / CONSTRAINT SATISFACTION PROBLEM / COMBINATORIAL SEARCH / COMBINATORIAL OPTIMIZATION
Аннотация научной статьи по экономике и бизнесу, автор научной работы — Македонов Роман Александрович, Зуенко Александр Анатольевич
В работе предлагается применять технологию программирования в ограничениях для решения задачи планирования оборота товаров для малых предприятий. Выбор в пользу данной технологии обусловлен тем, что часто классические числовые математические модели не в состоянии адекватно описать задачи предметной области, предполагающие наличие гибких ограничений, то есть разнообразных логических и аналитических условий на поставку, сроки и стоимость доставки, хранение и продажу товара.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по экономике и бизнесу , автор научной работы — Македонов Роман Александрович, Зуенко Александр Анатольевич
Методы ускорения комбинаторного поиска на основе матричного представления качественных зависимостей в задачах удовлетворения ограничений
Методика применения ABC/XYZ-анализа для целей управления запасами в ERP-системе предприятия
Особенности организации закупочной деятельности
Совершенствование системы управления запасами на торговом предприятии
Применение методов удовлетворения нечисловых ограничений в задачах качественного моделирования статических и динамических систем
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
DECLARATIVE APPROACHTO PROCUREMENT PLANNING BY A SMALL ENTERPRISE
The paper proposes to apply constraint programming technology to solve the problem of merchandise turnover planning for small enterprises. The choice in favor of this technology is due to the fact that often classical numerical mathematical models are not able to adequately describe the subject domain tasks, which require flexible constraints, that is, a variety of logical and analytical conditions for the delivery, delivery time and cost, storage and sale of goods.
Текст научной работы на тему «Декларативный подход к планированию оборота товаров для малых предприятий»
DOI: 10.25702/^^2307-5252.2019.9.126-136 УДК 004.832
Р. А. Македонов, А. А. Зуенко
Институт информатики и математического моделирования ФИЦ КНЦ РАН
ДЕКЛАРАТИВНЫЙ ПОДХОД К ПЛАНИРОВАНИЮ ЗАКУПОК МАЛЫМ ПРЕДПРИЯТИЕМ*
В работе предлагается применять технологию программирования в ограничениях для решения задачи планирования закупок малым предприятием. Выбор в пользу данной технологии обусловлен тем, что часто классические числовые математические модели не в состоянии адекватно описать задачи предметной области, предполагающие наличие гибких ограничений, то есть разнообразных логических и аналитических условий на поставку, сроки и стоимость доставки, хранение и продажу товара. Ключевые слова:
планирование закупок, ABC-анализ, XYZ-анализ, программирование в ограничениях, задача удовлетворения ограничений, комбинаторный поиск, комбинаторная оптимизация.
R. A. Makedonov, A. A. Zuenko
DECLARATIVE APPROACH TO PROCUREMENT PLANNING BY A SMALL ENTERPRISE
The paper proposes to apply constraint programming technology to solve the problem of procurement planning by a small enterprise. The choice in favor of this technology is due to the fact that often classical numerical mathematical models are not able to adequately describe the subject domain tasks, which require flexible constraints, that is, a variety of logical and analytical conditions for the delivery, delivery time and cost, storage and sale of goods.
procurement planning, ABC-analysis, XYZ-analysis, constraint programming, constraint satisfaction problem, combinatorial search, combinatorial optimization.
Одной из важных задач, стоящих перед малым и средним бизнесом, является прогнозирование спроса и формирование предложения, способного удовлетворить потребности рынка в условиях ограничений по финансам и времени. Соответственно, возникает потребность в разработке программного обеспечения, нацеленного на эффективное решение подобных задач. Сложность заключается в том, что часто классические числовые математические модели не в состоянии адекватно описать задачи предметной области, что обусловлено неопределенностью ситуации, в которой приходится принимать решение. При моделировании практических задач требуется совместно обрабатывать качественные и количественные зависимости. Качественные зависимости
* Работа выполнена в рамках темы НИР «Развитие методологии построения интеллектуальных мультипредметных систем информационной поддержки регионального развития на примере территорий Арктической зоны Российской Федерации (АЗРФ)» (№ 0226-2019-0036).
(логические формулы, продукционные правила и т.д.) используется для формализации различных аспектов неопределенности.
Цель исследований, представленных в с, состоит в том, чтобы оценить применимость технологии программирования в ограничениях, которая является мощным инструментом решения сложных задач комбинаторного поиска и комбинаторной оптимизации, для задачи планирования закупок малым предприятием в условиях ограничений на финансы.
Исходные данные для задачи берутся из результатов совмещенного ABC-XYZ-анализа. ABC-анализ — это инструмент, который позволяет определить рейтинг товаров по получаемой прибыли (как один из возможных критериев) [1, 2]. Он основан на правиле Парето: согласно которому 20% ассортиментных позиций обеспечивает 80% прибыли. Таким образом, весь ассортимент торгового предприятия в результате ABC-анализа можно разделить на группы по степени важности: группа A — очень важные товары, которые приносят наибольшую прибыль; группа B — товары средней степени важности; группа C — наименее важные товары, это претенденты на исключение из ассортимента.
XYZ-анализ — это инструмент, позволяющий разделить продукцию по степени стабильности продаж и уровню колебаний потребления [2]. Анализ заключается в расчете каждой товарной позиции колебания расхода (коэффициента вариации). Этот коэффициент показывает отклонение расхода от среднего значения и выражается в процентах. Результатом XYZ-анализа является группировка товаров по трем категориям, исходя из стабильности их поведения:
• категория X, в которую попадают товары с колебанием продаж от 5 % до 15 % (условно), характеризующиеся стабильной величиной потребления и высокой степенью прогнозирования;
• категория Y, товары с колебанием продаж от 15 % до 50 %. Это товары с сезонными колебаниями и средними возможностями их прогнозирования;
• категория Z, товары с колебанием продаж от 50 % и выше. Это товары с нерегулярным потреблением и непредсказуемыми колебаниями.
При совмещенном ABC-XYZ-анализе определяется девять групп товаров (AX,, BX, CX, . CZ), из которых наибольших интерес вызывают товары групп AX и BX, как наиболее прибыльные и прогнозируемые.
Исходными данными для задачи является прогнозируемое количество продаж продукции, получаемое из совмещенного ABC-XYZ-анализа и заданное границами колебаний продаж. Другой особенностью задачи является наличие гибких ограничений, позволяющих отразить разнообразные логические и аналитические условия на поставку, сроки и стоимость доставки, хранение и продажу товара.
Программирование в ограничениях как основа эффективной совместной обработки количественных и качественных соотношений
В качестве методологической основы исследований выбрана технология программирования в ограничениях. Для применения предлагаемой технологии необходимо, чтобы прикладная задача была сформулирована в виде задачи удовлетворения ограничений.
Согласно [3-5] задача удовлетворения ограничений (CSP — Constraint Satisfaction Problem) состоит из трех компонент: < X, D, C >. X — множество
переменных . В — множество доменов , где Вг является доменом (областью определения) переменной Хг. С — множество ограничений , которые предписывают допустимые комбинации значений переменных. Каждый домен Юг описывает множество допустимых значений для переменной Хг. Под ограничением понимается любое соотношение между переменными предметной области. В качестве ограничений могут выступать арифметические выражения; логические формулы; таблицы; выражения, формулируемые на языке специализированных теорий.
Решением задачи CSP является полное присваивание, которое удовлетворяет всем ограничениям. В некоторых случаях необходимо получить все решения. Иногда требуется найти такое решение, в котором значения переменных оптимизировали бы некоторый заданный функционал. CSP-задачи принадлежат классу ОТ—полных задач.
Технология программирования в ограничениях предоставляет мощные и гибкие методы, алгоритмы решения задач комбинаторного поиска. Особенности технологии:
1. С точки зрения конечного пользователя задача CSP формулируется в декларативном виде, на языке близком к языку математики. Порядок задания ограничений несущественен.
2. Любой алгоритм удовлетворения ограничений должен содержать две обязательных компоненты: а) компоненту, реализующую вывод (распространение); б) компоненту, реализующую поиск.
3. Вывод (распространение) реализуется как целенаправленное сужение изначально заданных областей определения переменных.
4. Эвристики, используемые в процедурах поиска, разрабатываются не под конкретную задачу, а являются универсальными.
5. Благодаря архитектуре систем программирования в ограничениях, появляется возможность совместно обрабатывать количественные и качественные ограничения.
6. Обеспечивается возможность сопровождать модели, отрытые для оперативных модификаций. При добавлении/удалении из модели ограничений нет необходимости писать новые методы решения задачи.
Программирование в ограничениях особенно полезно там, где нет возможности получить удовлетворительное/адекватное решение средствами «обычной» математики. Оно используется при решении задач планирования, проектирования, прогнозирования, в инженерных и экономических расчетах, при создании графических интерфейсов, в системах понимания естественного языка и др. [6, 7].
Весь процесс рассуждений на ограничениях сводится к поэтапному усечению изначально заданных областей определения переменных. Любой метод удовлетворения ограничений должен проектироваться особым образом и состоять из двух основных частей: части, реализующей поиск и части, реализующей вывод на ограничениях. Начнем с описания части, отвечающей за вывод. Как правило, под выводом на ограничениях понимается процесс сокращения размерности пространства поиска, обеспечивающий «сужение» доменов переменных, упрощение ограничений и т.п. и, при этом, имеющий низкую вычислительную сложность (оценивается полиномом низкой степени). Алгоритмы, реализующие вывод на ограничениях, называются алгоритмами-
распространителями или алгоритмами-пропагаторами. Данные алгоритмы исключают из областей определения переменных заведомо лишние значения, то есть значения, которые не входят ни в одно из допустимых присваиваний. Завершение алгоритмов-распространителей может произойти с тремя возможными исходами. Во-первых, в результате работы алгоритмов-распространителей может быть получено решение исходной задачи CSP: все домены переменных сужаются до одноэлементных множеств. Во-вторых, может быть установлено, что область определения некоторой переменной пуста, и тогда решения соответствующей задачи CSP не существует. Наконец, алгоритмы-распространители могут остановиться, достигнув некоторой неподвижной точки, а решение задачи CSP еще не получено. В этом случае в дело вступают методы, реализующие стратегии интеллектуального поиска. Эти методы, в отличие от методов вывода, имеет существенную вычислительную сложность, поскольку сопряжены с перебором вариантов гипотез о возможных значениях тех или иных переменных. В отличие от методов динамического программирования, например метода перемножения числовых матриц (matrix multiplication method), в качестве стратегий поиска в рамках парадигмы программирования в ограничениях, в основном, используются различные варианты информированного поиска в глубину с возвратами, а также методы локального поиска.
Архитектура систем программирования в ограничениях напоминает архитектуру вычислительных машин (рис. 1). В качестве своеобразной шины данных в системах программирования в ограничениях выступает так называемое хранилище ограничений, представляющее собой, список пар «переменная — перечень значений переменной, которые она может принимать на текущем этапе вывода». Аналогом центрального процессора выступает алгоритм — дирижер (управляющая подпрограмма), реализующий базовую стратегию поиска.
В качестве сопрограмм выступают подпрограммы, реализующие вывод на ограничениях, — распространители ограничений. Для различных типов ограничений и типов областей определения переменных разрабатываются различные алгоритмы-распространители. В частности, для арифметических и логических ограничений целесообразно иметь различные алгоритмы-распространители, учитывающие специфику данных типов ограничений. Продолжая аналогию с архитектурой вычислительных машин, процедуры-распространители соотносятся с дополнительными устройствами (оперативная память, жесткий диск и т.п.), достаточно гибко подключаемыми через шину данных. Кроме стандартных типов ограничений и алгоритмов-распространителей, в рамках библиотек программирования в ограничениях существует возможность создания пользовательских типов ограничений и соответствующих процедур распространения. В частности, автором были введены новые типы ограничений — С- и D-системы, и созданы высокоэффективные методы рассуждений на данных структурах, которые подробно описаны ниже.
Императивное и декларативное программирование и чем они отличиются
Нисходящий и восходящий метод программирования: особенности и отличия
Как структурное программирование помогает создавать эффективный и надежный код
Асинхронное программирование: что это такое и его особенности
Методологии Agile: SCRUM, Kanban и другие с точки зрения руководителя и разработчика
Парное программирование: принципы, преимущества, недостатки и рекомендации
Программирование – это процесс создания компьютерных программ, которые решают различные задачи. Одним из ключевых аспектов программирования является подход, который выбирает программист для решения конкретной задачи. Существуют два основных подхода: императивное и декларативное программирование, и оба они имеют свои преимущества и недостатки. В дальнейшем мы рассмотрим принципы, отличия и примеры языков программирования, использующихся в императивном и декларативном подходах.
Императивное программирование
Императивное программирование — стиль программирования, в котором программа состоит из инструкций, выполняющихся последовательно, чтобы изменить состояние программы. Программист описывает последовательность действий, необходимых для достижения желаемого результата.
Одной из ключевых особенностей императивного программирования является явное описание того, как программа должна работать. Инструкции в императивном программировании являются прямыми командами к выполнению определенного действия. Императивное программирование может быть полезным для точного контроля происходящего в программе, но может усложнять отладку кода и масштабирование программы, особенно при работе с большими проектами.
Императивное программирование может быть эффективным подходом для написания программ, которые выполняют определенные задачи, особенно там, где важна скорость выполнения. Однако, из-за своей сложности и склонности к ошибкам, код на языках программирования, основанных на императивном подходе, может быть трудным для понимания и сопровождения.
Декларативное программирование отличается от императивного программирования тем, что не требует явного указания порядка выполнения задач. Это означает, что программа может быть более краткой и читабельной, а код — более выразительным и гибким.
Декларативное программирование обычно используется для решения задач, которые не связаны с изменением состояния программы, а скорее с вычислением значений. Оно часто используется в областях, связанных с базами данных, искусственным интеллектом и анализом данных.
Декларативное программирование также обычно проще в отладке и тестировании, чем императивное. Однако некоторые задачи могут быть трудными для решения с помощью декларативного подхода.
Примерами декларативных языков программирования являются:
- SQL (Structured Query Language) — используется для работы с базами данных;
- Prolog — для решения логических задач;
- Haskell — для функционального программирования;
- XSLT (Extensible Stylesheet Language Transformations) — для преобразования XML-документов;
- R — язык программирования для статистического анализа данных и многие другие.
Различия между императивным и декларативным программированием
Императивное и декларативное программирование имеют множество различий, включая подход к написанию кода, способ описания задачи, организацию кода и управление состоянием программы:
Императивное программирование | Декларативное программирование | |
Подход к написанию кода | Описывает последовательность шагов | Описывает желаемое поведение |
Способ описания задачи | Описывает алгоритмы и контроль выполнения программы | Описывает логику и ограничения задачи |
Организация кода | Организуется в функции, изменяет глобальное состояние программы | Организуется в виде набора правил и ограничений |
Управление состоянием программы | Программист управляет состоянием программы | Программист не управляет состоянием программы |
В декларативном программировании программист описывает желаемое поведение программы, а не управляет состоянием напрямую. Это может уменьшить вероятность ошибок, связанных с состоянием программы, поскольку программист не обязан следить за изменением состояния в разных частях кода. Вместо этого, декларативный подход позволяет программисту определить правила и ограничения для желаемого поведения программы, и компьютер самостоятельно вычислит правильный результат, используя эти правила.
Преимущества и недостатки каждого подхода
Императивный метод | Декларативный метод | |
Преимущества | — Позволяет более точный контроль над состоянием программы- Легко понимаемый для начинающих программистов- Универсальный подход- Более эффективен для некоторых типов задач, включая манипуляцию со структурами данных | — Позволяет описывать, что нужно получить, а не как это сделать- Облегчает параллельное и распределенное программирование- Более легкий для оптимизации и анализа программы- Не требует явного управления состоянием программы |
Недостатки | — Не так легко масштабируется на больших проектах- Сложнее отлаживать из-за большей склонности к ошибкам | — Требует более высокого уровня абстракции и знаний языка программирования- Менее эффективен для задач, связанных с манипуляцией структурами данных и производительностью |
Важно помнить, что каждый подход имеет свои преимущества и недостатки, и выбор должен быть обоснован на основе конкретных потребностей проекта и уровня опыта программиста. Кроме того, существует множество инструментов и технологий, которые могут помочь в реализации каждого из подходов и улучшить их эффективность.
Как выбрать подход к программированию
При выборе подхода к программированию следует учитывать цель проекта, его масштаб, требования к скорости выполнения, ясности кода и устойчивости к ошибкам. Для решения определенных задач лучше подходят императивные языки программирования, в то время как для других — декларативные. Кроме того, при выборе языка программирования стоит обращать внимание на его принадлежность к определенному стилю (императивному или декларативному) и наличие необходимых инструментов и библиотек для реализации задач проекта.
Вот некоторые рекомендации по выбору подхода к программированию в зависимости от задачи и целей проекта:
- Если задача требует управления состоянием и выполнения последовательности действий, то императивный подход может быть более подходящим выбором.
- Если нужна высокая производительность, то императивный подход может быть предпочтительнее, так как в нем программист может более точно контролировать процессы.
- Если нужна высокая надежность и устойчивость к ошибкам, то декларативный подход может быть предпочтительнее, так как он может быть более предсказуемым и менее подвержен ошибкам.
- Также учитывайте опыт команды разработчиков. Если команда имеет большой опыт в использовании определенного подхода, то именно его использование ускорит разработку и повысит качество кода.
- Определите требования к производительности и масштабируемости проекта. Если проект требует высокой производительности и масштабируемости, то императивный подход может быть предпочтительнее.
- Учитывайте требования к безопасности и устойчивости к ошибкам. Декларативные подходы могут быть более устойчивы к ошибкам, так как они предоставляют меньше возможностей для ошибок.
Заключение
В целом, подходы программирования имеют свои преимущества и недостатки, и выбор подхода зависит от конкретной задачи и целей проекта. Если приоритетами являются скорость выполнения, устойчивость к ошибкам и масштабируемость, то лучше выбирать императивный подход. Если же приоритетами являются читаемость и понятность кода, то декларативный подход может быть более подходящим. Однако, не стоит полностью отказываться от одного подхода в пользу другого, а лучше выбирать сочетание подходов в зависимости от конкретной задачи. Кроме того, важно учитывать принадлежность языка программирования к императивному или декларативному стилю при выборе языка для конкретного проекта.