Why might you want to create your own domain-specific language (DSL)? It's easier to use and more effective for a particular problem since, unlike general-purpose programming languages (GPLs), DSLs are tailored to a specific domain. However, identifying a problem that can be solved by a DSL and designing the DSL can be challenging. DSLs are supposed to be concise yet expressive, feature-complete, but should not re-implement your favourite GPL.
In this presentation, you'll learn how to design a DSL that perfectly solves your problem. I'll share best practices that we at TypeFox have learned over more than 7 years of working on commercially deployed DSLs. We'll discuss:
- Which problems can be solved by a DSL and which cannot
- Production-used DSL examples
- How to extract constraints / requirements for a DSL from a problem
- How to design a DSL based on these requirements
- Language design patterns and best practices
Finally, I'll briefly touch on how to implement a DSL in code with and without language engineering frameworks such as Langium, Xtext, or JetBrains MPS.