JetBrains MPS (MetaProgrammingSystem) - это языковая рабочая среда, разработанная JetBrains . MPS - это инструмент для разработки предметно-ориентированных языков (DSL). Он использует проекционное редактирование, которое позволяет пользователям преодолевать ограничения языковых парсеров и создавать редакторы DSL, например, с таблицами и диаграммами. [3]
Он реализует языково-ориентированное программирование [ необходима ссылка ] . MPS - это среда для определения языка, языковая рабочая среда и интегрированная среда разработки (IDE) для таких языков. [4] [5] [6]
Разработчики) | JetBrains |
---|---|
Стабильный выпуск | 2020.1.2 [1] (22 июня 2020 г.) |
Репозиторий | |
Операционная система | Кроссплатформенность |
Лицензия | Лицензия на программное обеспечение Apache, версия 2.0 [2] |
Веб-сайт | www |
Составные языки
Разработчики из разных областей могут извлечь выгоду из языковых расширений для конкретных областей в языках программирования общего назначения. Например, разработчики Java, работающие с финансовыми приложениями, могут выиграть от встроенной поддержки денежных значений. К сожалению, традиционные текстовые языки подвержены проблемам двусмысленности текста, что делает такие расширения проблематичными.
MPS поддерживает составные определения языков. Это означает, что языки могут быть расширены и встроены, и эти расширения могут использоваться и будут работать в одной и той же программе в MPS. Например, если Java будет расширен за счет лучшего синтаксиса для коллекций, а затем снова расширен за счет лучшего синтаксиса для дат, эти расширения будут хорошо работать вместе.
MPS решает проблемы грамматической двусмысленности, работая напрямую с абстрактным синтаксическим деревом . Для редактирования такого дерева используется текстовый проекционный редактор . [7] [8]
Многоразовая языковая инфраструктура
MPS предоставляет многоразовую языковую инфраструктуру, настроенную с использованием языков определения языков. MPS также автоматически предоставляет множество сервисов IDE: редактор, автозавершение кода , поиск использований и т. Д.
Существующие языки
- Базовый язык - 99% Java с переопределением MPS. Есть много расширений этого языка
- язык коллекций
- язык дат
- язык закрытия
- язык регулярных выражений
- Языки определения языка - это язык осуществляется с самими собой, т.е. бутстрапируемых
- язык структуры
- язык редактора
- язык ограничений
- системный язык типа
- язык генератора
Приложения MPS
Mbeddr
mbeddr - это встроенная система разработки, основанная на MPS. В нем есть языки, адаптированные для встраиваемой разработки, и формальные методы : [9]
- Основной язык C
- Составные части
- Физические единицы
- Государственные машины
YouTrack
В октябре 2009 года JetBrains выпустила систему отслеживания ошибок YouTrack - первый коммерческий программный продукт, разработанный с помощью MPS. [10]
Редактор Realaxy
В апреле 2010 года была выпущена бета-версия Realaxy ActionScript Editor , первая коммерческая IDE, основанная на платформе MPS.
PEoPL
PEoPL - это инструмент для разработки линейки программных продуктов, реализованный в MPS. [11]
Лицензирование
Исходный код MPS выпущен под лицензией Apache .
Смотрите также
Рекомендации
- ^ URL-адрес ссылки: https://confluence.jetbrains.com/display/MPS/JetBrains+MPS+2019.3+Download+Page
- ^ URL-адрес ссылки: https://confluence.jetbrains.com/display/MPSD20183/FAQ#FAQ-HowisMPS , лицензировано , получено: 19 февраля 2019 г.
- ^ "Что такое MPS?" .
Создавайте свои собственные DSL
- ^ Мартин Фаулер. "Language Workbenches: приложение-убийца для языков, специфичных для предметной области?" .
- ^ Мартин Фаулер. «IntentionalSoftware» .
- ^ Фабьен Кампань (2014). "Инструментальные средства MPS Language Workbench: Том I."
- ^ Шрини Пенчикала. «Система метапрограммирования JetBrains поддерживает языковое программирование и DSL» .
- ^ Сергей Дмитриев. «Языко-ориентированное программирование: следующая парадигма программирования» .
- ^ "официальный сайт mbeddr" .
- ^ Чарльз Хамбл (15.10.2009). «Развитие Java без изменения языка» .
- ^ "PEoPL | Проекционное редактирование продуктовых линеек" . peopl.de . Проверено 19 июня 2017 .
Внешние ссылки
- Официальный веб-сайт
- Блог MPS
- Руководство пользователя MPS