views:

623

answers:

4

I am working on a project that requires me to define a DSL. Since coming up with the right DSL is critical for my project, I decided to evaluate existing frameworks that help in defining DSLs,parsing it and code generation(which has to be in a .NET based language) The frameworks I considered are :

  1. Boo language that has a customizable compiler and pythonish syntax ideal for defining a DSL.
  2. Windows powershell that supports extensible commandlets.
  3. Microsoft DSL tools that support visual modeling,but less flexible(in my opinion)
  4. ANTLR which is proven tool
  5. C# fluent interfaces.(Not so happy with this)
  6. Oslo framework (Is it mature to be used in production?)

There are pros and cons of each of the framework mentioned above and I am unable to make a decision.Given a choice between the above frameworks, which one would you choose and why?

Is there any other framework so fundamental that I might have missed out?

Any help or guidance would be greatly appreciated.

+1  A: 

In a question of mine that touched the subject of DSL's, it was suggested to me to use a combination of Irony and DLR. I don't know stable they are however. Irony is an Alpha, and DLR, although stable, is still in v0.9. I'm aiming to start using Irony myself in a week or two, so then I will be able to provide some feedback. On the bright side however - they are both opensource, so you can fix bugs yourself.

Vilx-
Thanks for the information. Irony looks very promising.
Prashanth
A: 

Jetbrains have a visual tool to aid in language development, forgotten the name but their front page has it on it. I believe its free and partially open sourced.

Neil Murphy
http://www.jetbrains.com/mps/index.html
TrueWill
A: 

The DMS Software Reengineering Toolkit is an integrated set of tools for defining arbitrary langauges, including DSLs, automating the construction of parsers, analyzers, and code generators for the defined languages.

Ira Baxter
A: 

Xtext: http://www.eclipse.org/Xtext/

Dominik