SYSK 316: What Are Domain Specific Languages (DSL)?

To quote Martin Danner, domain specific language is a “…small, highly-focused language for solving a clearly identifiable problem.   It’s all about abstraction.”


One of the main goals of a DSL is to automate mundane parts of the development process.  DSLs can be divided into two categories — industry specific (vertical) and technology specific (horizontal).


For example, user interface designer surface that generates code-behind representing the user interface is an example of a technology specific DSL.  in VS-Team System Architect edition the ‘distributed system’ project is an example of a DSL in the domain of service oriented architecture.  Another example is UML (unified modeling language) – a language heavily used for modeling object oriented applications. 


Seeing the pattern, you can conclude that DSL is part of software factories initiatives; and, in fact, that is correct.


Microsoft has a toolkit for creating your own design tools to solve problems in your domain – be it models that describe business processes, information flow, industry specific objects, etc.  Check it out at



Comments (0)