Educational Resources


DSL Engineering – Designing, Implementing and Using Domain-Specific Languages

Markus Voelter

The book explains the fundamental principles of using DSLs as part of the modern development cycle, showcasing JetBrains MPS as one of the tools that aims to make DSL development approachable.

Get the book

The MPS Language Workbench: Volume I

Fabien Campagne

The first volume of the series is both a simple introduction to the JetBrains MPS language workbench and a complete reference manual.

Get the book

The MPS Language Workbench: Volume II

Fabien Campagne

The second volume of the series explains how to customize the MPS platform to better integrate it with the needs of your languages.

Get the book


Dutch Tax and Customs Administration

Dutch Tax and Customs Administration using MPS Domain-specific languages to implement Dutch tax legislation and process changes of that legislation.

Read Case Study

Why mbeddr uses MPS

Mbeddr explores the benefits of language extension and formal methods for embedded software development.

Watch video tutorial

Additional MPS languages

Learn more

Contributing to MPS

Learn more

Conceptual Overview

  • The complete guide to domain-specific Languages by Federico Tomassetti (Article, 2017)
  • From Programming To Modeling — and back again (Article, 2010)
  • Language Workbenches: The Killer-App for domain-specific Languages? (Article, 2005)
  • Language Oriented Programming: The Next Programming Paradigm (Article, 2004)
  • Relevant conference and journal papers (MPS publications page)

Introductory Tutorials

Advanced Topics

  • Developing Make Facets for MPS (Article)
  • Developing new Tools/Views for MPS (Article)
  • Developing Data Flow Analysis for MPS (Article)
  • Working with MPS and Git (Article)
  • Working with MPS and ant (Article)
  • Language Modularization and Composition with MPS (2011, Paper)

MPS Use Cases and Other Related Reading

  • Experiences with Teaching MPS in Industry – Towards Bringing Domain Specific Languages Closer to Practitioners (Paper, 2017)
  • Consistent Projectional Text Editors (Paper, 2017)
  • Lessons learned from Developing mbeddr: A Case Study in Language Engineering with MPS (Case Study, 2017)
  • Automated testing of DSL implementations—experiences from building mbeddr (Paper, 2017)
  • Grammar to JetBrains MPS Convertor" (Paper, 2016)
  • Domain-Specific Language for Learning Programming" (Diploma thesis, 2016)
  • Extensible Debuggers for Extensible Languages (Ada Europe 2015)" (Paper, 2016)
  • Evaluating and Comparing Language Workbenches - Existing Results and Benchmarks for the Future" (Paper, 2015)
  • Using C Language Extensions for Developing Embedded Software - A Case Study" (Paper, 2015)
  • Towards User-Friendly Projectional Editors" (Paper, 2014)
  • Supporting Diverse Notations with MPS’ Projectional Editor" (Paper, 2014)
  • Projecting a Modular Future" (Paper, 2014)
  • Generic Tools, Specific Languages (PhD thesis, 2014)
  • Polyglot software development (PhD thesis, 2014)
  • Requirements as First-Class Citizens: Integrating Requirements with Implementation Artifacts" (Paper, 2013)
  • Integrating Prose as a First-Class Citizen with Models and Code" (Paper, 2013)
  • Instantiating a Language Workbench in the Embedded Systems Domain" (Paper, 2013)
  • A Concept for Language–oriented Security Testing" (Paper, 2013)
  • JetBrains MPS as a Tool for Extending Java (Paper, 2013)
  • Composable languages for bioinformatics: the NYoSh experiment (Paper, 2013)
  • MPS-based Domain-specific Languages for real time Java development" (Master thesis, 2012)
  • mbeddr: an Extensible Programming Language and IDE for Embedded Systems (Case study, 2012)
  • DSLs to fully generate business applications - Daniel Stieger (Case study, 2012)
  • Implementing Feature Variability for Models and Code with Projectional Language Workbenches" (Paper, 2010)
  • Embedded Software Development with Projectional Language Workbenches (Paper, 2010)
  • Product Line Engineering with Projectional Language Workbenches (Paper, 2010)

Still haven’t found what are looking for? Please contact JetBrains MPS support with your inquiries. We can help!