Jetbrains Meta-Programming System (MPS) is a language workbench – a tool for building domain-specific languages (DSLs). MPS distinguishes itself from other language workbenches through its use of projectional editing to enable language development.
Projectional editing is a technique by which the abstract syntax tree of a user-defined model or program can be represented in different ways depending on context, which a language developer can control. This allows MPS to create intuitive and powerful DSLs which show language concepts in forms that users are inherently familiar with, such as through diagrams or tables. Furthermore, MPS leverages automatic code-generation from templates, which allows developers to potentially utilise other general programming languages as part of their DSL.
Jetbrains has a dedicated community and a number of detailed learning resources to make the learning process easier, making it a solid choice of tool for a developer looking to learn how to create DSLs.
Installing MPS is quite straightforward – go here for OS-specific distributions.