What are Domain-Specific Languages (DSL)?

“Programming languages that raise the level of abstraction beyond programming by specifying the solution that directly uses concepts and rules from a specific problem domain.”

Kelly and Tolvanen (2008)

In contrast to a General Purpose Language (GPL) a DSL targets a particular domain.

With MPS you can define a custom editor for any new language to make using DSLs simpler. Even domain experts, who are not familiar with traditional programming, can work easily in MPS, with domain-specific languages designed with their own domain-specific terminology.

HTML and SQL are some popular examples of DSLs, but that’s only the tip of the iceberg. With language workbenches everyone can create their own DSL. In the following video you can see an example of how an Interactive voice response (IVR) was made with MPS. This DSL is targeted at non-technical people so the user experience is adapted to them.