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 http://msdn.microsoft.com/vstudio/DSLTools/.


 


 

Comments (0)