Join JetBrains' DSLs and MPS experts Alex Shatalin and Vaclav Pech for a FREE 1-day workshop at Skills Matter!
Domain Specific Languages allow you to write code in the domain-expert's lingo. Along with many advantages this brings about several challenges, like notation ambiguity or lack of editor support, that need to be addressed in order for you to benefit fully from the concept.
/JetBrains Meta Programming System (MPS) is an opensource framework addressing the task of creation, extension and combining DSLs. Primarily focused on IDE/codegeneration aspects of new languages, MPS allows you to create extensions to existing languages and use newly created custom language constructs in your code. JetBrains MPS pioneers the Language Oriented Programming (LOP) concept, which is gaining increasing attention today.
The introductory handson lab is targeted at Java developers with some experience or an interest in DSLs. In this session, participants will be guided by the MPS core developers through the process of creating a new language extension and the related aspects like editors or code generators. The language will then be deployed into a Java IDE to be easily used alongside normal Java code. This exercise will help them understand the MPS approach and learn its core features.
The course is aimed at developers and technical leads, who investigate the tooling aspect of the DSL domain.
In the first part an overview of the language definition and extension process in MPS will be presented, including motivation for extending Java with features like closures, date/time expressions or math formulas.
The second part, which will focus more on the hands-on aspect, attendees under the supervision of the session leaders will create their own extensions and define additional attributes like type system, dataflow and intentions. We would like to keep the session very practical and provide a step-by-step guided tour through the process of language extension. Together with the language, the participants will gradually build an IntelliJ IDEA plugin that would let the new language run directly inside a Java IDE.
Hold tight, skillscasts coming soon!