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

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску

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

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

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

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

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

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

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

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

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

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

См. также

Ссылки


de:Domänenspezifische Sprache en:Domain-specific language fi:Täsmäkieli fr:Langage dédié ja:ドメイン固有言語 pl:Język dziedzinowy