Developing your own Domain-Specific Language

In yesterday’s blathering I sent you off to an excellent article, at least in my opinion, Create a Language Compiler for the .NET Framework.  In this article, you could follow along with the author on how to implement a compiler.  But what about creating a language?  Ok, there are lot of ways that we can describe a language, maybe calling it a scripting language or compiler language.  Then there could be an argument about which is better.

Why would you create a Domain-Specific Language?  I really don’t want to make any definitive statement, but rather take a look at the Wikipedia:

As usual with general documents on the web, Microsoft is mentioned very little.  Which is too bad, Microsoft has the best tools for the creation of Domain Specific languages.  Visual Studio 2010 Ultimate with Team Foundation Server are most tightly integrated design tools on the market. 

Professors:

You can use MSDNAA and use the DSL Tools to create a simple language that the students could explore

Students:

You can create your own language for use in interviews to show your ability to solve specific problems that employers are interested in.  For example, you might create a domain-specific language that allows rapid development of facebook apps that show off the future employer’s need

Professionals:

Spending a few hours exploring the DSL might give you the opportunity to implement a process that saves time at work.  For example, let’s say you are doing a lot of Azure work and find that you have to write similar code.  Instead of creating a template you could create a DSL that allows a simple implementation of the multiple line code.  Or a better idea would be to design a test language that could be used to speed up qualification for code and to assist with the decision to release production code.