3

As a side project I am developing some sort of DSL where I describe a data model, and generate desired code files from it. I believe this is called Model Driven Architecture. My partial existing implementation uses C#, CodeDOM, XML and XSLT to do this manually.

I discovered there already exist better environments to do this in. The one which fascinated me the most is called MPS, which follows the Language Oriented Programming paradigm. This article, written by a cofounder of JetBrains was a real eye opener for me. I truly believe LOP has a very good chance of becoming the next big programming paradigm once it has broader support. From my short experience with MPS, I noticed it is still mainly Java-oriented.

My question is, how feasible is it to generate code files for other (multiple) languages instead of just Java. I don't need full language support from the start, so preferably, I need to be able to implement a language in a agile way. E.g. first support only one type, add access modifiers, ...

Perhaps some other (free) environment already provides this out of the box.

P.S.: I find it important to have a lot of control over the naming conventions and such of the generated code. This is one of the reasons why I started my own implementation.

UPDATE:

Judging from the answers it seems like people think I'm only interested in .NET solutions. This is not the case, any other suggestions are highly welcomed!

2 Answers 2

1

I also think that Language Oriented Programming shows great promise, the possibilities look great and when you follow http://twitter.com/markusvoelter or read his blog http://voelterblog.blogspot.com/ you can see that it is pretty active.

For what I have seen so far it isn't production ripe yet even for Java development, the C# part is even less evolved. http://devnet.jetbrains.net/thread/282730;jsessionid=C5F9CBBD449C2DFAC390EC18B4B66863 and http://code.google.com/p/mps-csharp/

The C# projects show it is feasible, I don't think it will be easy. The integration with Visual Studio will be a problem.

As alternatives you could look into:

End O Yes, there can be some confusion about the terminology:

MDA is an OMG standard for MDD. See here for a nice explanation

1
  • Thanks for pointing out the difference between MDA and MDD. Feb 7, 2011 at 21:40
1

Any decent Lisp implementation will provide you with all the LOP tools out of box. Languages like Nemerle will do the job just fine too. And there are specialised DSL-building frameworks like mbase or http://www.eclipse.org/Xtext/ that can handle various target platforms.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.