MPS 3.4.2 bug fix release is available for download

A fresh bug fix release has been issued – MPS 3.4.2 is ready for you to download. Get it today and enjoy its better stability. You may check out the release notes for details on the problems fixed in this release.

The Drive to Develop
-JetBrains MPS Team

Posted in Announcement | Tagged , , | Leave a comment

MPS 3.4.1 has been released

We’re releasing the first bug fix release MPS 3.4.1 today. If you have migrated to MPS 3.4 already, there should be no surprises for you when you switch to 3.4.1. If you haven’t migrated to 3.4 yet, then now is a good time to do so.

You can download MPS 3.4.1 from the usual place.

The Drive to Develop
-JetBrains MPS Team

Posted in Announcement | Tagged , , , | Leave a comment

MPS competes at Language Workbench Competition 2016

The LWC event, which this year is organized as a workshop at the SPLASH conference, is getting closer. We’re happy to inform you that MPS will be represented by a team of four brave MPS enthusiasts, who will compete against the other workbenches with an MPS-based system.

Correction: As indicated in the comments, LWC stands for Language Workbench Challenge, not competition. Sorry for the mistake.

Their solution leverages the mbeddr documentation language to take care of the presentation side of the system and relies heavily on the core MPS capabilities to solve the project challenges:

  • The ability to use different notations
  • Extensibility and embeddability of languages
  • Language management (such as migration and versioning).

Let’s introduce the individual members of the crew:

Eugen and Klemens Schindler

Two brothers, who have both followed the same career path, earning an MSc degree in computer science and a PDEng postmaster degree in Software Technology, employing Model Driven Engineering for years in their professional jobs, and using MPS since 2012. They significantly contributed to MPS solutions for the last three Language Workbench Competition workshops.

Eugen currently works as a model interoperability architect at Océ Technologies B.V., a division of Canon Inc. which constructs heavy duty high-performance print systems.

Klemens currently works at Sioux Embedded systems, doing consulting for various clients in the domain of embedded and cyberphysical systems development.

They both contribute to MPS plugins at DSLFoundry (check out also the github page).

Federico Tomassetti

Federico is a DSL enthusiast doing consulting on MPS. He got a PhD in Polyglot Software Development and worked in Italy, Germany, Ireland and France, for companies like TripAdvisor and Groupon. He is now focusing on building tools and languages to empower people. You can find out more on Federico’s website.

Ana Maria Sutii

Ana a PhD student at the Eindhoven University of Technology. She has a keen interest in software engineering, and, in particular, in technologies for domain-specific languages.  Check out Ana’s publication page.

What these guys think about MPS

Ana says: It was surprising how quickly people in the team came up with examples to address the challenges of the LWC this year. This says a lot about the power of MPS.

Klemens and Eugen say: we like to apply MPS and mbeddr to real-life projects in our work. The notational flexibility that MPS gives, enables us to encode various (often company-specific) domains, which opens up these domains not only to software-developers, but to developers from different disciplines. Being forced by MPS to explicitly specify each of the aspects that make up a language, shapes your way of reasoning about languages, the usefulness of which extends even outside MPS.

The team would also like to thank mbeddr team, in particular to Markus Völter and Kolja Dummann, for their input in designing building the solution. Moreover, thanks go also out to Remi Bosman from Sioux for helping us to set up the design for the MPS solution.

If you are coming to the conference, consider joining the workshop and cheering up for the team representing MPS. We all wish them good luck!

The Drive to Develop
-JetBrains MPS Team

Posted in Events | Tagged , , | 2 Comments

MPS 3.4 released

Today we’re releasing MPS 3.4 with improvements in editor usability and cross-model generation. The fresh 3.4 release of MPS comes with several important improvements that we believe will give the MPS users new possibilities when designing languages. The three most prominent new features are:

  • A newly designed Transformation Menu Language provides a unified way to specify editor transformations, substitutions and contextual assistance. It naturally supports re-use, explicit editor-cell location as well as multiple projections.
  • New editor usability tools – Context Assistant and Context Actions Tool, help the DSL users easily discover and invoke the most relevant actions in the given editor context.
  • Generation plans have been integrated with DevKits to simplify configuration and checkpoint models can hold pointers to the preserved nodes to help users gain insight into the generation process, especially during cross-model generation scenarios.

The full list of what you can enjoy with the new release is ready at the What’s new page.
Now might be the best time for you to grab MPS 3.4 from the download page and experience the new version yourself. With the automatic migrations included in MPS 3.4 upgrading your projects will be a breeze.

The Drive to Develop
-JetBrains MPS Team


Posted in Announcement | Tagged , , , | Leave a comment

MPS 3.4 release candidate 1

The release train for final MPS 3.4 has set off. Having incorporated your feedback to the EAP releases, we’ve just made the first release candidate available for download. Please grab MPS 3.4 RC1, try it out and tell us, how satisfied you are with it.

As usual, the What’s new page sums up briefly the things new in MPS 3.4 with respect to version 3.3. You might also like to look over the few recent posts on the MPS blog to read about the new most noteworthy features in more detail.

The Drive to Develop
-JetBrains MPS Team

Posted in Announcement | Tagged , , , | Leave a comment

MPS 3.4 on final approach

Today we are giving you a public preview release of MPS 3.4 – we’ve implemented all the planned features and fixed all the critical issues that have been discovered over time in the EAP releases. Now it is time to check if anything leaks or squeaks so that we can correct it before releasing the final 3.4.

Please give MPS 3.4 Public Preview a good test. Pay special attention to the fundamental improvements:

We’ll welcome your comments, suggestions and ideas.

For details on the implemented functionality, please consult the What’s new page or read through the previous few blog posts, which elaborate on the individual new features.

The Drive to Develop
-JetBrains MPS Team

Posted in Announcement | Tagged , , , | Leave a comment

Coming soon in 3.4 – Icon description language

Here’s another handy new little feature in 3.4 that we want to introduce to you – the Icon description language. This language helps describing and instantiating icons for various MPS elements: concepts, actions etc. Again, mbeddr has inspired us here, namely their iconchar language.

The langage has two aims:
1. Allow for quick icon prototyping (e.g. making new icons for concepts)
2. Make icons an extensible language construct rather than an ad-hoc solution, which it was before

First impression

Wherever an icon is expected in the MPS language definition languages, you can enter a textual description of the desired icon instead of pointing to an existing .png file.


An icon description consists of layers, each of which can be any of:

  • a primitive graphical shape
  • a custom image loaded from a file
  • a character

These layers are then combined into a single image to represent the icon.


Creating icon prototypes

When describing an icon, you can get assistance from the Create Icon intention, which offers an automatic way to create a textual description of an icon and thus to prototype it quickly.


Invoking the intention will result in creating a straightforward icon definition.


This definition describes a circular icon with letter “X” inside of it. Upon regeneration the generated icon will take effect and shows up in the UI. (The recent EAP release demands a restart, though.)


The use of icons

The jetbrains.mps.lang.resources contains two constructs:

  • icon{} represents the image as an instance of javax.swing.Icon class.
  • iconResource{} returns an instance of jetbrains.mps.smodel.runtime.IconResource class.

These icon descriptions can be used:

  • to specify icons in different places of the language definition languages – in concepts, actions, etc, where icons are expected
  • in methods in the MPS UI that are supposed to return an Icon

Check out full documentation of Icon description language for more details on how to use and extend this feature.

The Drive to Develop
-JetBrains MPS Team

Posted in Feature | Tagged , , , | Leave a comment

Coming soon in 3.4 – Contextual assistance for language definition languages

The new visual assistance tools that were explained in one of the previous posts are really addictive. We could not help it and, to test the feature properly, we implemented Context Assistant for the language definition languages. More concretely, the structure and the editor languages leverage the mechanism in order to offer you the actions that you are most likely to invoke at any moment during the language design.


There’s even some heuristics implemented, which can offer non-trivial actions in some situations, You should definitely check out this quick video to find out more.

The Drive to Develop
-JetBrains MPS Team

Posted in Feature | Tagged , , , | Leave a comment

Coming soon in 3.4 – checkpoints and DevKits with Generation Plans

MPS has been searching gradually over several releases for the best way to approach explicit generation plans and cross-model generation. MPS 3.4 represents another substantial step in this direction. It brings two major enhancements:

  • Debug information in checkpoint models
  • Using DevKits to associate a generation plan

Debug information in checkpoint models

When a model is being generated following a generation plan, the content of mapping labels will be preserved during the plan’s checkpoints in so called checkpoint models.

These checkpoint models are visualized in the Project View and the user can inspect them and navigate to the nodes stored in the mapping labels. This can substantially help users debug issues in cross-model generation.


The checkpoint models are persisted, so unmodified models do not need to be generated each time depending models get re-generated.

Using DevKits to associate a generation plan

DevKits are used to wrap mutually related languages and solutions, which other solutions can then import as single units. DevKits can now additionally associate a generation plan from within its wrapped solutions.


Any model that imports that DevKit will get the DevKit’s associated generation plan applied to it automatically.


The Generation Plan documentation page summarizes the current situation in generation plans and cross-model generation fully and provides useful hints on how to implement generation plans and cross model generation on your projects.

You may also check out a video explaining the process of associating a generation plan with a DevKit.

The Drive to Develop
-JetBrains MPS Team

Posted in Feature | Tagged , , , | Leave a comment

Coming soon in 3.4 – Contextual assistance

There are two new features in MPS 3.4 that I would like to drive your attention to today – the Context Assistant and the Context Actions Tool. Both have been inspired by the mbeddr project and both aim at making code editing easier and more intuitive, especially for novice users. Making the most relevant editing options explicitly visible to the user and accessible with mouse is part of our long-term strategy to make the MPS DSLs approachable for people outside of the narrow rank of professional developers.

Context Assistant

Context Assistant provides visual hints directly in the editor

image2016-2-3 14_40_34

The language designer defines a place (cell) in the editor, where the menu can appear, and then defines the actions using the new Transformation Menu Language.

image2016-2-18 17_57_44

The language allows for modularization, so that extending languages can contribute their own entries into the menu easily.

Read more in the Context Assistant documentation. You can also watch a short screen-cast about Context Assistant.

Context Actions Tool

Context Actions Tool is a tool window attached to the right side-bar, which can show actions applicable in the current context.


The tool window offers more room than the in-editor Context Assistant and its entries can be further grouped into collapsable submenus, which gives the language authors quite some space to use.

Read more in the Context Actions Tool documentation or check out a short screen-cast about Context Actions Tool.

Transformation Menu Language

To define the elements of both Context Assistant and Context Actions Tool the new Transformation Menu Language is being utilized. You may check out the previous post for motivation and further details about this language.

The Drive to Develop
-JetBrains MPS Team

Posted in Feature | Tagged , , , | Leave a comment