JetBrains MPS

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
JetBrains MPS
MPS logo.svg
Разработчик JetBrains
Написана на Java
Операционная система кроссплатформенный
Языки интерфейса Английский
Последняя версия 2020.3.3 (23 марта 2021)
Лицензия Open Source
Сайт jetbrains.com/mps/

JetBrains MPS — система метапрограммирования, разработанная JetBrains. Она реализует парадигму языково-ориентированного программирования[1], является средой разработки языков и в то же время IDE для разрабатываемых языков.

Разработка языков[править | править код]

MPS позволяет разрабатывать новые языки программирования и языковые расширения существующих языков.

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

В MPS грамматическая двойственность решена работой непосредственно с абстрактным синтаксическим деревом, которое редактируется проекционным редактором в текстовой манере[2][3].

Встроенные языки[править | править код]

Base Language — внутренняя реализация Java, взятой за базовый язык, на основе которого реализовано множество расширений, включенных в MPS:

  • collections — язык запросов к коллекциям
  • dates — DSL для работы с датами
  • closures — добавляет поддержку замыканий
  • regular expressions — язык описания регулярных выражений

Языки описания языков:

  • structure language — язык описания языковых концептов
  • editor language — язык описания редактирования языковых концептов
  • constraints language — язык описания связей
  • typesystem language — язык описания системы типов
  • generator language — язык описания генерации языка в другой целевой язык

Применение[править | править код]

В октябре 2009 JetBrains был выпущен багтрекер YouTrack[4] — первый коммерческий продукт, созданный при помощи MPS.

В апреле 2010 выпущена бета-версия Realaxy ActionScript Editor[5] — первая IDE, основанная на MPS.

Примечания[править | править код]

  1. Сергей Дмитриев. Языково-ориентированное программирование
  2. англ. Martin Fowler A Language Workbench in Action — MPS  (англ.)
  3. Dr. Dobbs Jetbrains Releases MPS Language Workbench  (англ.)
  4. JetBrains Releases YouTrack 1.0 Архивная копия от 4 марта 2016 на Wayback Machine  (англ.)
  5. Realaxy ActionScript Editor Beta (недоступная ссылка). Архивировано 26 апреля 2012 года.  (англ.)

Ссылки[править | править код]