Meta Programming System:
Introductory course

Training available on-site, remotely or from our Prague office
Knowledge of programming in Java, basic familiarity with language engineering

This course targets beginners in the MPS technology. The training will guide the trainees through the individual aspects of a language definition, showing them the essential capabilities of the tool and providing a basic understanding of common language design patterns and development practices. You will create languages of increasing complexity, enhance various aspects of existing languages and practice typical scenarios of language design.

Key highlights:

The training is lead by experienced core MPS developers and seasoned trainers, who will help you gain insight into the technology through the most convenient paths.
Participants are split into small groups to guarantee an individualized approach and allow instant feedback.
The training sessions are organized around practical hands-on exercises that you will be performing under close supervision.


Since we prefer the freedom to customize the contents of each run of the course, we put up no fixed prices, but instead the prices will be agreed upon individually. We’ll be happy to discuss further details with you directly.

Alternative locations:

We are able to train you on-site. If you’d like to have a JetBrains lecturer come over to your place and deliver the training at your premises, let us know through the form.

Please use the form below to express your interest in the MPS training. We will reply to your inquiry by e-mail and provide you with additional details, answer your questions and suggest a concrete date.


  • Gain an overall understanding of the domain
  • Learn about the capabilities of MPS
  • Understand the individual language-design aspects
  • Discover how to create languages and language extensions on your own
  • Become skilled in using the essential MPS toolset


  • Language engineering - fundamentals of language design
  • Examples of existing MPS usages
  • Understanding the MPS user interface
  • MPS project structure and dependencies
  • Commanding the projectional editor
  • Introduction into the aspects of language definition
  • Effective navigation around code
  • Constraints and scoping
  • Language manipulation API - the smodel language
  • BaseLanguage and its extensions
  • Modularizing the editor definition and making the editor fluent
  • Quotations and antiquotations
  • Generator templates and macros
  • Tooling for language engineering

Speaking to you

Václav Pech
Václav Pech is passionate about programming in all its forms and flavors. He's keenly interested in server-side Java technologies, distributed and concurrent systems, modern programming languages, and DSLs. He joined JetBrains on a mission to empower developers with top-notch development tools. He's currently involved in the MPS project, developing a projectional DSL workbench, and building customized DSLs.

"I have really appreciated the quality of the MPS professional training course. Vaclav is a very knowledgeable instructor and a great teacher. The course was well organized in order to provide a comprehensive overview of MPS combined with extensive hands-on practice and exercises. I would recommend this course to anyone wishing to fully grasp the MPS' amazing potential. Breathing the inspiring air of the JetBrains headquarters and enjoying the city of Prague was a huge plus." 

— Mauro Bertapelle, JMatica Srl

"For those who want to learn metaprogramming this is a high-quality course." 

— B. B., The Netherlands

"One of the most instructive courses that I have attended, an absolute must for anyone who goes to work with MPS." 

— M. A., The Netherlands

"Very efficient training to get to know MPS, with a very committed and competent trainer!" 

— S. R., fortiss GmbH, Germany