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

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

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

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

В MPS грамматическая двойственность решена работой непосредственно с абстрактным синтаксическим деревом, которое редактируется проекционным редактором в текстовой манере A Language Workbench in Action — MPS Dr. Dobbs Jetbrains Releases MPS Language Workbench .

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

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

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

Применение

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

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

Примечания

Ссылки Meta Programming System Мартин Фаулер Языковой инструментарий: новая жизнь языков предметной области

Категория:Интегрированные среды разработки Категория:Свободные интегрированные среды разработки Категория:Кроссплатформенное программное обеспечение Категория:Свободное программное обеспечение, написанное на Java Категория:JetBrains