« MPS generators : weaving and mapping rules | Main | Name of things »

May 09, 2006

DSLs synergy

In the build 262 we've reached an important milestone because for the first time it was shown how quite different DSLs can be glued together in MPS.
First, the baseLanguage got an extension - smodelLanguage - specifically focused on manipulation with our models.
Next, we've injected baseLanguage into the editorLanguage and got the elegant blend of declarative and imperative code customizing the editor behavior (that is, cell's keymaps/action-maps).

Before we widely used bare java code (query-methods) to fill gaps and flaws in our mostly declarative DSLs. The 'query-methods' are static methods with wild names and no documentation, have been source of complaints and now they are going away!

I'm very excited about that partially because there was no secret magic, no hacks. Everything is in naked models. And not tricky at all. Doesn't need extraordinary capabilities :) , just skills.

We are moving on. Since the last build, smodelLanguage has been refined and enriched with many new operations. In the editor language all 'rendering conditions' of cells are now written into the embedded codeblocks.

compare the 'query-method':

cellRenderingCondition_QueryMethod.PNG

and embedded code:

cellRenderingCondition_Embedded.PNG

I've found that using DSLs is not only more efficient and safe - it's amusing!

Posted by Igor Alshannikov at May 9, 2006 05:01 AM

Comments

Hi,

I am new to MPS. Very new :) I knew something about DSL. Well I haven't actually start reading the tutorials yet, but upon curiousity, can this runs with C# or vb.net? Or this is a java thing?

Any help?

Thanks.

Posted by: Chua Wen Ching at May 26, 2006 10:00 AM

Hi, I'm sorry that you comment hasn't been shown for that long time but surprisingly it turned out, that I have to approve each comment before it shows up :(
I even wasn't got notified that there are some comments.

regarding your question - so far the MPS is limited to java only.

Posted by: Igor Alshannikov at June 22, 2006 01:10 AM

Post a comment




Remember Me?