JetBrains MPS - JetBrains MPS

Система мета-программирования
MPS Logo.svg
Разработчики)JetBrains
Стабильный выпуск
2020.1.2[1] (22 июня 2020 г.)
Репозиторий Отредактируйте это в Викиданных
Операционная системаКроссплатформенность
ЛицензияЛицензия на программное обеспечение Apache, версия 2.0[2]
Интернет сайтwww.jetbrains.com/ м / с/ Отредактируйте это в Викиданных

JetBrains MPS (MetaProgrammingSystem) - это Языковой верстак разработан JetBrains. MPS - это инструмент для проектирования предметно-ориентированные языки (DSL). Оно использует проекционное редактирование который позволяет пользователям преодолевать ограничения языковых парсеров и создавать редакторы DSL, например, с таблицами и диаграммами.[3]
Он реализует языковое программирование[нужна цитата ]. MPS - это среда для определения языка, языковой верстак, и интегрированная среда развития (IDE) для таких языков.[4][5][6]

Составные языки

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

MPS поддерживает составные определения языков. Это означает, что языки могут быть расширены и встроены, и эти расширения могут использоваться и будут работать в одной и той же программе в MPS. Например, если Ява расширен улучшенным синтаксисом для коллекций, а затем снова расширен улучшенным синтаксисом для дат, эти расширения будут хорошо работать вместе.

MPS решает проблемы грамматической двусмысленности, работая с абстрактное синтаксическое дерево напрямую. Чтобы отредактировать такое дерево, текстовый проекционный редактор используется.[7][8]

Многоразовая языковая инфраструктура

MPS предоставляет многоразовую языковую инфраструктуру, настроенную с использованием языков определения языков. MPS также автоматически предоставляет множество сервисов IDE: редактор, завершение кода, найти способы использования и т. д.

Существующие языки

  • Базовый язык - 99% Ява дополнен MPS. Есть много расширений этого языка
    • язык коллекций
    • язык дат
    • язык закрытия
    • язык регулярных выражений
  • Языки определения языков - эти языки реализованы сами с собой, т.е. загруженный

Приложения MPS

Mbeddr

mbeddr - это встроенная система разработки, основанная на MPS. В нем есть языки, адаптированные для встроенной разработки и формальные методы:[9]

  • Основной язык C
  • Составные части
  • Физические единицы
  • Государственные машины

YouTrack

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

Редактор Realaxy

В апреле 2010 г. Редактор Realaxy ActionScript Выпущена beta, первая коммерческая IDE на платформе MPS.

PEoPL

PEoPL - это инструмент для разработки линейки программных продуктов, реализованный в MPS.[11]

Лицензирование

Исходный код MPS выпущен под Лицензия Apache.

Смотрите также

Рекомендации

  1. ^ ссылочный URL: https://confluence.jetbrains.com/display/MPS/JetBrains+MPS+2019.3+Download+Page
  2. ^ ссылочный URL: https://confluence.jetbrains.com/display/MPSD20183/FAQ#FAQ-HowisMPSlicensed, получено: 19 февраля 2019 г.
  3. ^ "Что такое MPS?". Создайте свои собственные DSL
  4. ^ Мартин Фаулер. "Language Workbenches: приложение-убийца для языков, специфичных для предметной области?".
  5. ^ Мартин Фаулер. "IntentionalSoftware".
  6. ^ Фабьен Кампань (2014). "Инструментальные средства MPS Language Workbench: Том I."
  7. ^ Шрини Пенчикала. «Система метапрограммирования JetBrains поддерживает языковое программирование и DSL».
  8. ^ Сергей Дмитриев. «Языко-ориентированное программирование: следующая парадигма программирования».
  9. ^ "официальный сайт mbeddr".
  10. ^ Чарльз Хамбл (15.10.2009). «Развитие Java без изменения языка».
  11. ^ "PEoPL | Проекционное редактирование производственных линий". peopl.de. Получено 2017-06-19.

внешняя ссылка