Domain Specific Languages (DSLs) are special-purpose programming languages developed for a specific domain. Some of its most interesting benefits include:
- increasing productivity (by reducing the lines of code that have to be written manually)
- test generation
- formal verification
These languages work by using higher-level constructions and restrictions. They can be either textual (declarative or imperative) or graphical, and can include multiple views for the same domain.
I’ve used this type of languages extensively in my work and it saves a lot of time. “Preprocessing” is one of the tyipcal ways to implement them. Some subtypes include:
- Macro processing
- Source-to-source transformation (conversion between languages)
- Lexical processing
You can use these languages for several purposes, including:
- Defining an entity model
- Protocol definition
- High-level user interface description
- Automated test case description
- Software architecture description
Microsoft has some easy to use DSL editor tools in Visual Studio. Check the “Modeling SDK for Visual Studio – Domain-Specific Languages” at http://msdn.microsoft.com/en-us/library/bb126288.aspx .
I strongly recomend using DSLs, they can save you a lot of time and money.
- When and How to Develop Domain-Specific Languages (2005) – http://www.rose-hulman.edu/Users/faculty/young/OldFiles/CS-Classes/OldFiles/csse490-mbse/Readings/DSL-Survey-WhenHow.pdf
- AN APPROACH FOR THE SYSTEMATIC DEVELOPMENT OF DSLS (2009) – http://nm.wu-wien.ac.at/home/mark/publications/spe-v39i15-oct09.pdf
- Guidance for Domain Specific Modeling in Small and
Medium Enterprises (2011) – http://www.dima.tu-berlin.de/fileadmin/fg131/Publikation/Papers/henning-agt-bizware-guidance-domain-specific-modeling-dsm-splash-2011.pdf
- Evaluating the Benefits of Using Domain-Specific Modeling Languages – an Experience Report (2013) – http://www.dsmforum.org/events/dsm13/Papers/Wegeler.pdf