Предметно-ориентированный язык программирования

Предметно-ориентированный язык программирования

Предметно-ориентированный язык программирования (англ. domain-specific programming language, domain-specific language, DSL) — язык программирования, специально разработанный для решения определённого круга задач, в отличие от языков программирования общего назначения, таких, как Си, или языков моделирования общего назначения наподобие UML и др.

В рамках таких языков, как Forth и Lisp, всегда существовала, но не всегда использовалась возможность создания DSL-языков.

Языки программирования предметной области, дополненные технологиями метапрограммирования, являются эффективным средством автоматизации разработки программного обеспечения и в настоящий момент находят широкое применение в области информационных технологий.

Примерами предметно-ориентированных языков могут служить:

  1. Адаптивные объектные модели — это модели, которые строятся специально для определённой предметной области на объектно-ориентированных языках общего назначения.
  2. Файлы XML, используемые в современных проектах для конфигураций программных каркасов.
  3. Электронные документы с формальным описанием логики работы приложения.

Предметно-ориентированные языки разделяют на внешние и внутренние. Внешние — это языки, написанные на языке, отличном от основного языка программирования. Примерами такого типа могут служить конфигурационные XML-файлы. Внутренние языки, напротив, реализованы на языке программирования общего назначения. В качестве примера можно назвать адаптивные объектные модели.

Процесс создания предметно-ориентированного языка

Процесс создания нового предметно-ориентированного языка состоит из трёх шагов:

  1. Определение абстрактного синтаксиса.
  2. Определение конкретного синтаксиса.
  3. Определение правил трансформации.

Абстрактный синтаксис описывает понятия, используемые в языке, в виде, пригодном для машинной обработки. Существует два способа задания абстрактного синтаксиса — в виде метамодели и в виде КС-грамматики. Конкретный синтаксис — это представление понятий абстрактного синтаксиса, которыми может манипулировать пользователь. Представление может быть текстовым, графическим или симбиозом двух первых. Правила трансформаций — это правила, по которым абстрактное представление транслируется в исполнимое. Различают два типа трансформаций — горизонтальные и вертикальные. Примером горизонтальной трансформации может служить автоматический рефакторинг, предоставляемый современными средствами разработки. Примером вертикальной трансформации может служить генерация байт-кода Java из исходного кода программ на Java.

Ссылки

Литература

  • Мартин Фаулер Предметно-ориентированные языки программирования = Domain Specific Languages (Addison-Wesley Signature Series) (Hardcover). — М.: «Вильямс», 2011. — 576 с. — ISBN 978-5-8459-1738-6

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Предметно-ориентированный язык программирования" в других словарях:

  • Встроенный язык программирования 1С:Предприятие — Класс языка: процедурный, предметно ориентированный Тип исполнения: предварительно компилируемый Автор(ы): 1С Релиз: 1С:Предприятие 8.2 …   Википедия

  • Встроенный язык программирования 1С: Предприятие — Встроенный язык программирования 1С:Предприятие Класс языка: процедурный, предметно ориентированный Тип исполнения: предварительно компилируемый Автор(ы): 1С Последняя версия: 1С:Предприятие 8.2 Типизация данных: динамическая типизация Основные… …   Википедия

  • Компьютерный язык — Понятие компьютерный язык (калька с англ. computer language), как правило, относится к языкам, ассоциируемым с компьютерной техникой. Чаще всего, этот термин соответствует понятию языка программирования, однако это соответствие не является… …   Википедия

  • Агентно-ориентированный подход — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная …   Википедия

  • Метапрограммирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная …   Википедия

  • DuAL — Семантика: Предметно ориентированный язык программирования Появился в: 2004 Автор(ы): Тимченко Максим Типизация данных: динамическая Испытал влияние …   Википедия

  • Bigwig — это предметно ориентированный язык программирования разработанный для создания web приложений. Он исполняется как модуль Apache и работает в операционных системах Linux и Sun Solaris. У него не существует версии для Microsoft Windows. Bigwig… …   Википедия

  • Горячая замена — Горячая замена (англ. Hot Swap  горячая замена и англ. HotPlug  горячее подключение)  термины означающие отключение или подключение электронного оборудования в/к (компьютерной) системе во время её работы без… …   Википедия

  • DSL — DSL: Damn Small Linux. Предметно ориентированный язык программирования (англ. domain specific programming language, domain specific language, DSL). xDSL (англ. digital subscriber line цифровая абонентская линия) семейство технологий 90… …   Википедия

  • Объектно-ориентированное программирование — Эта статья во многом или полностью опирается на неавторитетные источники. Информация из таких источников не соответствует требованию проверяемости представленной информации, и такие ссылки не показывают значимость темы статьи. Статью можно… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»