Что такое mps jetbrains

Обновлено: 30.06.2024

itemis — новый спонсор ASRG

Мы с гордостью официально отмечаем наше партнерство с ASRG. Мы вместе разрабатываем решения для кибербезопасности уже много лет. ASRG — это международная некоммерческая инициатива, направленная на содействие разработке решений в области кибербезопасности специально для автомобильной промышленности. Мы с нетерпением ждем продолжения совместной разработки решений, вебинаров и семинаров.

Наша цель – упростить разработку предметно-ориентированных языков (DSL). Для достижения этой цели мы активно используем Jetbrains MPS. Наша команда является ведущей командой разработчиков MPS в мире, и мы обеспечиваем разработку, консультации экспертов и разработку расширений.

Что такое MPS?

MPS – это языковая рабочая среда, инструмент для разработки языков и IDE. Пользователи указывают язык предмета с помощью языковых DSL, встроенных в MPS; Затем MPS создает IDE, чтобы конечные пользователи могли выражать модели или программы на языке предмета. MPS разрабатывался компанией Jetbrains в течение последних 15 лет и является программным обеспечением с открытым исходным кодом под лицензией Apache.

Почему MPS?

MPS обычно считается одним из самых универсальных и мощных языковых инструментов (как видно уже из этого сравнительного документа 2013 года). Он поддерживает широкий спектр языковых аспектов, от структуры над синтаксисом и системой типов до генераторов, преобразований и интерпретаторов. Что делает MPS особенным, так это его проекционный редактор, который поддерживает широкий спектр стилей обозначений, включая текст, формы, символы, таблицы и диаграммы. Благодаря унифицированной архитектуре редактора можно легко смешивать эти обозначения (текст в таблицах, символы в тексте). Это, в свою очередь, означает, что MPS позволяет определять очень богатые языки, языки, которые охватывают существующие (неформальные) нотации, установленные в предметной области. Просмотрите первые 10 слайдов в этой презентации для примеров.

Вторая причина, по которой MPS выделяется из множества языковых инструментальных средств, заключается в надежной поддержке языковой модульности. Поскольку проекционный редактор никогда не столкнется с двусмысленностью синтаксического анализа и из-за дизайна его языковых определений-DSL, разработчики языков могут повторно использовать существующий язык (модули) разными способами. Эта возможность позволяет нам наращивать доменные языки поверх языков общего назначения (как мы уже много лет делаем с mbeddr C) и встраивать многоразовый функциональный KernelF в несколько DSL для ряда бизнес-доменов.

MPS – это языковая рабочая среда, ориентированная на доменные языки. С помощью MPS вы можете создавать свои собственные расширяемые DSL и сразу же начинать использовать их для создания приложений для конечных пользователей. Уникальная технология проекционного редактирования позволяет преодолеть ограничения языковых парсеров и создавать гораздо более богатые редакторы DSL, например, с таблицами и диаграммами. MPS постепенно внедряется как академическими кругами, так и промышленностью в таких различных областях, как электротехника, разработка встроенного программного обеспечения, анализ больших данных, кодирование налогового законодательства и страхование.

Пользователи разработали многофункциональные DSL с MPS, которые теперь помогают их командам эффективно внедрять и поддерживать основную бизнес-логику своих систем.

MPS — это проект Apache 2 OSS. Исходный код, а также документация размещены на JetBrains и дублированы на GitHub. Команда состоит из сотрудников JetBrains, но с течением времени в проект также вносились многочисленные внешние участники.

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

Участие в проекте JetBrains MPS

Отправить отчет об ошибке

Сообщения об ошибках — это самый простой способ принять участие. Отчеты об ошибках занимают мало времени и очень полезны для разработчиков. Когда вы обнаружите проблему, пожалуйста, сообщите об этом. Убедитесь, что вы предоставили информацию о своей среде (версия ОС, JDK и MPS), действиях по воспроизведению проблемы, а также текстовое описание проблемы. Вы можете зарегистрировать ошибку в базе данных ошибок JetBrains MPS YouTrack. Перед отправкой проблемы вы также можете поискать уже отправленные проблемы, описывающие ту же проблему, и если вы найдете такую, не стесняйтесь проголосовать за нее.

Создайте модульный тест, воспроизводящий проблему

Отчеты об ошибках полезны, но, как вы, наверное, знаете, большинство проблем можно воспроизвести/проверить с помощью автоматических тестов JUnit. Нашим разработчикам гораздо проще и удобнее воспроизвести проблему, запустив тестовый пример, вместо того, чтобы вручную выполнять список шагов для воспроизведения ошибки. Если вы потратите немного больше времени и создадите тест JUnit, воспроизводящий вашу проблему, мы, как правило, сможем исправить/обработать вашу ошибку быстрее.

Добавить код косвенно

Если вы хотите улучшить код MPS, вы можете отправить исправление, прикрепив его к соответствующему запросу в базе данных ошибок JetBrains MPS YouTrack.Вы можете либо создать новую проблему с прикрепленным патчем, либо прикрепить патч к проблеме, отправленной другим пользователем. Разработчик рассмотрит ваше исправление, и, если оно соответствует критериям качества и остальному коду, вы получите уведомление о принятии исправления. Как уже упоминалось, патчи с аттачами unit-test должны обрабатываться быстрее.

Добавить код напрямую

Хотя основной репозиторий Git находится в JetBrains, у нас есть общедоступное зеркало на GitHub. Зеркало в первую очередь предназначено для использования в качестве простого в использовании репозитория для внешних участников, которые могут легко добавлять код с помощью запросов на вытягивание.

Пожалуйста, ознакомьтесь со страницей участия в проекте JetBrains MPS, чтобы получить полную информацию о том, как создать проект из исходных кодов и как отправить свой код.

Обмен и совместное размещение вашего проекта Oss

Если вы создаете проект с открытым исходным кодом с помощью MPS, рассмотрите возможность бесплатно разместить непрерывную интеграцию для вашего проекта в TeamCity рядом с самим проектом MPS. Таким образом, вы сможете легко создать свой проект с использованием новейшей (или любой другой) версии MPS. Если это полезно для вашего проекта, сообщите нам об этом.

Добавить документацию

Чем лучше будут объяснены концепции, тем больше энтузиастов присоединится к нам в сообществе MPS. Если вы заинтересованы в сотрудничестве, дайте нам знать. Мы можем дать вам разрешение на запись в пространство MPS Confluence, обсудить ваши идеи и указать на самые серьезные проблемы.

Размещение учебных пособий, презентаций или видеороликов

Если вы создали учебное пособие или видео по MPS, сообщите нам об этом, и мы опубликуем его на веб-сайте проекта для других энтузиастов MPS.

Разработайте свой собственный предметно-ориентированный язык с полной средой разработки. Получите редактор кода с завершением, семантикой и проверкой типов одним щелчком мыши. Напишите генераторы для компиляции вашего DSL на несколько целевых языков, таких как Java, C, XML и многие другие.

Построение MPS из исходников

Загрузите IntelliJ IDEA с веб-сайта JetBrains. Версия сообщества будет работать нормально.

  1. Разветвите репозиторий MPS GitHub в своем собственном пространстве с помощью пользовательского интерфейса GitHub (перейдите в репозиторий MPS и нажмите кнопку разветвления вверху. Это создаст разветвление репозитория в вашем пространстве github).
  2. Клонируйте свою вилку на свой локальный компьютер: git clone git@github.com:/MPS.git. В зависимости от вашего интернет-соединения, это может занять много времени, MPS большой. Рассмотрите возможность использования параметра git --depth, чтобы клонировать только часть истории проекта, чтобы сэкономить время и место.
  3. Предпочтительнее работать в собственной ветке, поэтому создайте новую ветку для работы в git checkout -b my_branch_name
  4. Откройте проект в IntelliJ IDEA (Community или Ultimate Edition).
  5. Подключить JB JDK 11 к проекту
    1. Загрузите последнюю версию JB JDK 11 для своей ОС и версии MPS. Перейдите на сайт MPS TeamCity, перейдите к конфигурации сборки, соответствующей версии MPS, которую вы пытаетесь собрать, и найдите дистрибутив JDK (например, 2021.3 -> Распространение -> Получить ресурсы). Нажмите на символ Артефакты последней успешной сборки Получить ресурсы и выберите нужный дистрибутив. Убедитесь, что вы взяли jbrsdk, а не jbsdk.
    2. Главное меню -> Файл -> Структура проекта открывает диалоговое окно «Структура проекта».
    3. В разделе Настройки платформы -> SDK добавьте новый JDK с именем "JB JDK 11"

    Если вы предпочитаете готовую сборку, перейдите на страницу загрузки и скачайте установочный пакет по вашему выбору.

    MPS распространяется под лицензией Apache 2 с открытым исходным кодом. Полную информацию см. в полном лицензионном соглашении MPS.

    Для сборки JetBrains MPS из исходников вам понадобится JDK 11. В настоящее время более старые версии JDK не поддерживают сборку MPS из исходников.

    Для открытия проекта следует использовать версию IntelliJ IDEA Community или Ultimate. Версии IntelliJ IDEA должны отражать версию (ветку) открываемого проекта MPS:

    Тщательно подобранный список замечательных расширений/библиотек MPS, программного обеспечения и ресурсов.

    Что вы ищете?

    Понять, что такое MPS

    Посмотрите, что другие создали с помощью MPS

      это проекты с открытым исходным кодом, все построенные на MPS, содержит список академических работ, в которых широко используется MPS

    Начало работы с MPS

    Чтобы получить изложенное, мы предлагаем просмотреть учебные пособия в следующем порядке:

      — это бесплатный практический курс, который охватывает основы JetBrains MPS с точки зрения разработчика языка, пропуская теоретические темы и практические советы по повышению производительности. - Полное руководство по MPS для создания вашего первого языка от @coolya с большим количеством справочной информации о языковом дизайне.представляет собой расширенное введение в MPS в виде нескольких видеороликов, а также репозиторий github, с которым можно поиграть. Он также охватывает расширения MPS, такие как дополнительные обозначения или структура интерпретатора.
    • Если вам нужна конкретная информация о том, как создавать генераторы, это руководство содержит набор рекомендаций.
    • Техническая книга DSL содержит подробное обсуждение концепций, лежащих в основе MPS, в части III, посвященной языковой реализации.
    • Для получения дополнительной информации по конкретным темам MPS см. книгу MPS Language Workbench Book (том I, том II), а также официальное руководство пользователя MPS.

    Learning содержит еще больше руководств. Кроме того, Research содержит список научных работ, в которых широко используется MPS.

    Свяжитесь с сообществом

    Отличный MPS

    Плагины

    Плагины, улучшающие MPS.

      - Исправьте сценарии сборки одним щелчком мыши при изменении зависимостей модуля. - Расширения редактора MPS baseLanguage для лучшей читабельности. - Упрощенные редакторы для повышения читабельности генераторов. - Преобразует редактор в файлы PDF. - Расширение языка редактора MPS. Это поможет вам создавать согласованные и корректные текстовые обозначения в MPS без особых усилий. - Ingrid — это плагин для JetBrains MPS, позволяющий импортировать грамматики ANTLRv4 и создавать из них язык MPS. - Этот плагин позволяет аннотировать произвольные узлы в ваших моделях текстом документации. - Плагин JetBrains MPS для визуализации структуры языка. - Набор удобных расширений для BaseLanguage, таких как оптимизация хвостовой рекурсии и запоминание функций - Code Review для JetBrains MPS, обеспечивающий интеграцию с Bitbucket - Различные расширения для упрощения разработки языка. - Плагин Gradle для создания и тестирования языков и поддержки различных задач, связанных с пользовательской упаковкой RCP. - Этот репозиторий содержит инструменты обеспечения качества для MPS Jetbrains. - Симпатичные индикаторы выполнения для IDE на основе IJ. - Shadow Models — это фреймворк пошаговой трансформации для MPS. - Stubs Generator — это плагин к Jetbrains MPS, который позволяет легко создавать генераторы библиотечных заглушек для пользовательских языков MPS. - Делитесь фрагментами кода MPS через браузер. - Альтернативный Textgen для JetBrains MPS, использующий стандартную модель для моделирования механизмов генерации.

    Создано с помощью MPS

    Полные интегрированные среды разработки, созданные с помощью MPS.

      - Предметно-ориентированные языки для реализации налогового законодательства Нидерландов и обработки изменений этого законодательства. - FBME (среда моделирования функциональных блоков) — это интегрированная среда разработки для стандарта IEC 61499, построенная на основе языковой рабочей среды JetBrains MPS. - Интеллектуальная среда программирования для ПЛК. - Расширяемая реализация C в MPS для поддержки разработки встроенного программного обеспечения. - IDE для R для людей с ограниченными знаниями в области компьютерных наук. - Полнофункциональная среда IDE, основанная на MPS, для управления линейками программных продуктов.

    Языки

    Другие проекты

      - Modelix — это платформа с открытым исходным кодом, целью которой является внедрение моделирования в Интернет. - Новая система типов от JetBrains для MPS. Использует логическое программирование. - Веб-сайт, который отвечает на некоторые распространенные вопросы о MPS и показывает распространенные ошибки и ловушки. - Инструмент для удаленного доступа к MPS. - Вспомогательный сценарий для создания префикса изолированной конфигурации для изолированных экземпляров MPS. - Эксперимент с Projector по размещению JetBrains MPS в браузере. - Это фреймворк для создания проекционных редакторов, которые взаимодействуют с JetBrains MPS.

    Изучение MPS

    Учебники/курсы

      - Целью этого проекта является создание языка для определения ментальных карт. является официальным учебником для MPS. Он предоставит вам обзор высокого уровня за 10 шагов, охватывающий все аспекты MPS на высоком уровне. - Полное руководство по MPS для создания вашего первого языка от @coolya с большим количеством справочной информации о языковом дизайне. — это бесплатный практический курс, который охватывает основы JetBrains MPS с точки зрения разработчика языка, пропуская теоретические темы и практические советы по повышению производительности. - Немного расширенное введение в MPS с упором на расширение языка. - Еженедельная одночасовая встреча в Zoom, на которой вы можете поделиться своим экраном и получить помощь.

    Книги и руководства пользователя

    Сообщество

    Твиттер

    Слабый

    Веб-сайты

      - Блог DSLFoundry: инструкции и статьи о практическом использовании MPS. - Блог, посвященный языковой инженерии, со множеством примеров, реализованных с использованием MPS. - Собственные сообщения в блоге владельца репозитория на MPS. - Использует MPS для обучения основам программирования людей, не занимающихся компьютерными науками. - Блог, посвященный конкретным языкам: статьи о практическом использовании MPS. - Блог Strumenta: статьи о MPS и языковой инженерии в целом.

    Исследования

    Документы

    Доклады/Видео

      - Беседа Вацлава Пеха о MPS.— Jetbrains MPS с Константином Соломатовым. Серия MPS Talk — это бесплатное виртуальное мероприятие, организованное JetBrains и itemis в феврале 2021 года. — Официальные видеоролики JetBrains на MPS.

    Содействие

    Ваши комментарии всегда приветствуются! Сначала ознакомьтесь с правилами пожертвований.

    Читайте также: