MPS User Guide for Language Designers

You are viewing documentation of MPS 3.3, which is not the most recently released version of MPS. Please refer to the documentation page  to choose the latest MPS version.

 

Credits

Welcome to MPS. This User Guide will navigate you through the many concepts and usage patterns that MPS offers and will give you a hand whenever you need to know more details about any particular aspect of the system.
First, the Introduction section will offer a high-level overview of the basic notions and their roles. In the second section, named Using MPS, you'll get familiar with the interface through which you'll communicate with MPS. Although very small, there still are some differences between how you interact with MPS and how you typically use other common programming tools.

In the third section, called Defining Languages, we'll get to the meat of MPS. We'll show details on how to define the many aspects of your custom languages - their structure, editors, generators and type systems rules. The IDE integration section will then provide some additional context necessary to help you improve the IDE aspect of your languages and integrate them nicely into MPS.

The Platform languages section gives you details on all languages bundled with MPS including the corner stone language of MPS - the BaseLanguage. Whatever didn't fit the mentioned scheme was placed into the last Miscelaneous section.

You can also view the user guide in pdf (created by Marco Lombardo).

Tutorials and cookbooks

Don't forget to check out our tutorials and focused cookbooks listed in the Tutorials and Cookbooks sections, to learn more about individual aspects of MPS

Before you start

Frequently Asked Questions (FAQ)

Check out the FAQ document to get some of your questions answered before you even ask them.

User guide for language designers

MPS Java compatibility

Commanding the editor

IDE configuration

Getting dependencies right

Resolving difficulties, understanding reported errors

Where to find language plugins

Version Control

Using MPS Debugger

Console

Structure

Constraints

Behavior

Scopes

Intentions

Testing

Refactoring

Languages for IDE integration

Custom persistence cookbook

IDE tools

Platform Languages 

 

Delivering languages to the users 

 

Tutorials

Cookbooks

Miscelaneous