Published Sep 3, 2019

Episode 126: Jetbrains MPS with Konstantin Solomatov

Konstantin Solomatov delves into Jetbrains' Meta Programming System (MPS), illustrating its transformative impact on language-oriented programming by enabling domain-specific language creation, showcasing real-world implementations, and discussing its seamless integration capabilities across various programming languages.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Extension Mechanics

    The mechanics of language extension in Jetbrains' Meta Programming System (MPS) offer a unique approach to enhancing programming languages. explains that MPS allows extensions at various levels, such as expressions and statements, enabling the addition of complex numbers or new statements like regular expressions 1. This flexibility is akin to Java packages, where multiple languages can be integrated into a model, ensuring compatibility across different languages 1.

    You can add as many languages as you want and they will be compatible.

    ---

    The system's generators facilitate the transformation of languages into lower-level languages, eventually reaching Java, XML, or JavaScript, illustrating its sophisticated model-to-model transformation capabilities 2.

       

    Compatibility

    Handling compatibility in MPS is crucial when integrating multiple language extensions. notes that while languages are generally compatible at the editing level, issues can arise if different languages impose conflicting requirements on a class's base class 1. However, such conflicts are rare if developers adhere to best practices.

    If people don't do such things, everything will be good and languages will be comfortable.

    ---

    This compatibility ensures that developers can extend languages like Java with custom statements, such as a lock statement, without compromising the integrity of the original language 1.

Related Episodes