Skip to content

coolya/mps.rocks

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MPS rocks Awesome

A curated list of awesome MPS extensions/libraries, software and resources.

Inspired by awesome-python and awesome-rust.

What are you looking for?

Understand what MPS is

See what others have been building with MPS

  • Built with MPS are open source projects that all built on MPS
  • Research contains a list academic papers that make heavy use of MPS

Get started with MPS

To get stated we suggest to look at the tutorials in the following order:

  • MPS for the Impatient is a free hands-on course that covers the basics of JetBrains MPS from the language designer's perspective, skipping the theoretical topics as well as the practical productivity how-tos.
  • HeayMeta.tv - A complete MPS tutorial to build your first language by @coolya with lots background information on language design.
  • MPS Intro Course by @markusvoelter is an advanced introduction to MPS in the form of multiple videos as well as a github repository to play around with. It also covers extensions to MPS such as additional notations or the interpreter framework.
  • If you are specificity looking for input on how to build generators this guide contains a set of best practices.
  • The DSL Engineering Book contains detailed discussions of the concepts behind MPS in its Part III on language implementation.
  • For more details on specific MPS topics we refer to The MPS Language Workbench Book (Volume I, Volume II) as well as the official MPS User Guide

Learning contains a list of even more tutorials. In addition Research contains a list academic papers that make heavy use of MPS.

Get in touch with the community

Awesome MPS

Plugins

Plugins that improve MPS.

  • Build Script Notifier - Fix your build scripts with one click when module dependencies change.
  • digitalember.extensions - MPS baseLanguage editor extensions for better readability.
  • Durchblick - Simplified editors to increase readability of generators.
  • Editor2PDF - Serialises editor into PDF files
  • Fernsprecher - View your IntelliJ based IDE logs directly in your browser.
  • Grammar Cells - An extension to the editor language of MPS. It will help you to create consistent and well-behaving textual notations in MPS with no effort.
  • ingrid - Ingrid is a plugin for JetBrains MPS allowing import of ANTLRv4 grammars and create an MPS language out of it.
  • Key Promoter X - This plugin helps to learn essential shortcuts while you are working.
  • langdoc - This plugin allows arbitrary nodes in your models to be annotated with documentation text.
  • Language visualizer - A JetBrains MPS plugin to visualize the structure of a language.
  • Mario Progress Bar - Pretty progress bars for IJ based IDEs.
  • MPS BaseLanguage Extensions - A set of handy extensions to BaseLanguage, such as tail recursion optimization and function memoization
  • mps-code-reviewer - Code Review for JetBrains MPS providing integration with Bitbucket
  • MPS Extensions - Various extensions to simplify language development.
  • MPS gradle plugin - A Gradle plugin to build & test langauges and to support various tasks related to custom RCP packaging.
  • MPS-QA - This repository contains quality assurance tooling for Jetbrains' MPS.
  • Nyan Progress Bar - Pretty progress bars for IJ based IDEs.
  • Presentation Assistant - This plugin shows name and Win/Mac shortcuts of any action you invoke.
  • Shadow Models - Shadow Models is an incremental transformation framework for MPS.
  • Stubs Generator - Stubs Generator is a plugin to Jetbrains MPS which allows easy creation of generators of library stubs for custom MPS languages.
  • skadi gist - Share MPS code snippets via the browser.
  • Text Generator Plugin - Alternative Textgen for JetBrains MPS using the standard model to model generation mechanisms.

Built with MPS

IDEs

Complete IDEs built with MPS.

  • Dutch Tax Office - Domain-specific languages to implement Dutch tax legislation and process changes of that legislation.
  • FBME - FBME (Function Blocks Modelling Environment) is an IDE for IEC 61499 standard built on top of JetBrains MPS language workbench.
  • Hardella IDE - Smart programming environment for PLC
  • mbeddr - An extensible C implementation in MPS to support embedded software development.
  • MetaR - A IDE for R for people with limited computer science background.
  • PeoPL - A full IDE build upon MPS to manage Software Product Lines.

Languages

Individual languages.

  • ANTLR_MPS - An ANTLR language for MPS, and the ToMPS language to help create MPS languages and ANTRL visitors from an ANTLR 4 grammar.
  • CsBaseLanguage - An implementation of the C# 5.0 language.
  • DclareForMPS - Support for the dclare engine in MPS.
  • D-Flat - C# language implementation prototype for JetBrains MPS.
  • ecmascript4mps - ECMAScript language implementation for JetBrains MPS.
  • FormatsDSL - A DSL to describe formats and generate loaders.
  • mbeddr.cpp - C++ language implementation prototype for JetBrains MPS, built as an extension on mbeddr.core (C language).
  • MPS JSON Language - A JSON implementation for MPS.
  • PlantUML - Language for PlantUML models, also useful to generate PlantUML diagrams from custom DSL.
  • iets3 - Base language for system modelling and specification including basics abstractions for components, expression, variability, etc.
  • Physics - A physical simulation description language built with MPS.
  • Voice Menu - A voice menu language and a Java simulator built using JetBrains MPS.
  • Web languages - a collection of Web-centric, partial language implementations: JSON, JSON Schema, WSDL, XSD, SVG, CSS.

Other projects

  • Modelix - Modelix is a open source platform that aims to bring modeling on the web.
  • MPS CodeRules - New typesystem from JetBrains for MPS. Uses logic programming.
  • MPS Platform Docs - This website collects practical knowledge about MPS and popular MPS platforms.
  • MPSServer - A tool to make MPS accessible remotely.
  • mpsZooKeeper.sh - Helper script to generate an isolated configuration prefix for isolated MPS instances.
  • Skadi Cloud - An experiment with Projector to put JetBrains MPS into the browser.
  • WebEditKit - This is a framework for creating projectional editors which interact with JetBrains MPS.

Learning MPS

Tutorials / Courses

  • Learn MPS - Browse top resources, improve your MPS skills, and connect with the community.
  • Creating a simple language using JetBrains MPS - The objective of this project is to construct a language to define mindmaps.
  • Fast track tutorial is the official tutorial for MPS. It will provide you with an high-level overview in 10 steps, covering all aspects of MPS at a high level.
  • HeayMeta.tv - A complete MPS tutorial to build your first language by @coolya with lots background information on language design.
  • MPS for the Impatient is a free hands-on course that covers the basics of JetBrains MPS from the language designer's perspective, skipping the theoretical topics as well as the practical productivity how-tos.
  • mps-tips - Collection of tips and tricks about the MPS ecosystem which might be useful to someone.
  • MPS tutorials - Official tutorials and cookbooks for MPS.
  • MPS Intro Course by @markusvoelter - A slightly advanced introduction to MPS wiht a focus on language extension.
  • MPS Office Hours - A weekly one-hour Zoom meeting where you can share your screen and get help.

Books and User Guides

Community

Medium

Twitter

Slack

Websites

  • DSLFoundry - DSLFoundry blog: howtos and articles about practical MPS usage.
  • F1RE - A blog focus on the model driven software engineering domain.
  • languageengineering.io - A blog focused in language engineering with many examples implemented using MPS.
  • log verbose - The repositor owner's own blog posts on MPS.
  • Official Website
  • Programming Basics - Uses MPS to teach the basics of programming to none computer science people.
  • Specific Languages - Specific Languages blog: articles about practical MPS usage.
  • Strumenta - Strumenta blog: articles about MPS and language engineering in general.

Research

Papers

Talks / Videos

Contributing

Your contributions are always welcome! Please take a look at the contribution guidelines first.