Interested Article - JetBrains MPS

MPS (Meta Programming System) — система метапрограммирования , разработанная JetBrains . Она реализует парадигму языково-ориентированного программирования , является средой разработки языков и в то же время IDE для разрабатываемых языков.

Разработка языков

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

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

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

Встроенные языки

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

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

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

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

Применение

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

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

Примечания

  1. Сергей Дмитриев. от 23 марта 2010 на Wayback Machine
  2. англ. Martin Fowler от 26 января 2010 на Wayback Machine (англ.)
  3. Dr. Dobbs от 31 мая 2010 на Wayback Machine (англ.)
  4. от 4 марта 2016 на Wayback Machine (англ.)
  5. . Архивировано из 26 апреля 2012 года. (англ.)

Ссылки

  • (англ.)
  • Мартин Фаулер от 26 декабря 2013 на Wayback Machine
Источник —

Same as JetBrains MPS