The Model Driven Software Network

Raise your level of abstraction

Hi everyone, I am relatively new to model driven development

Can you tell me:

 1) the simplest way of developing a DSL

 2) a nice tutorial to develop DSL

 

Thank you all

Views: 1620

Reply to This

Replies to This Discussion

Hi,

 

The Eclipse Modeling ecosystem proposes a lot of interesting tools/components with the Eclipse Marketplace Modeling category (http://marketplace.eclipse.org/search/apachesolr_search/?filters=ti...).

 

Your could find also interesting tools on the Language Workbench competition website:  http://www.languageworkbenches.net/

 

Of course I'm interesting to tell you more about Obeo Designer, our solution to easily create your own DSL and associated modeling tools ;)

I invite you to take a look to this video that will quickly show you the tool in action: http://www.youtube.com/watch?v=SqVaMxXELnY&feature=player_embedded

A white is available here: http://www.obeo.fr/resources/WhitePaper_ObeoDesigner.pdf

And more details here: www.obeodesigner.com

 

best regards,

Freddy.

Thank you for the reply. I saw the video and visited the website, tool is interesting, I need to play with it ;-)

best regards

Like Freddy mentioned, tools have a role on how simple it is to develop a domain-specific language. While LWC is a coming event you might be interested to check MDD-TIF that provides reviews and sample implemenation with different tools (see http://www.dsmforum.org/events/MDD-TIF07/).

However, like in software development, the initial creation is just a part of the effort as the DSL (and the created models) needs to be maintained too. I woudl thus argue that more important is to have tools that support evolution of the language and evolution of the models created with the language.

To answer your questions:
1) the simplest way of developing a DSL?
If you are creating your first language, pick a small, mature and familiar domain to target. If it looks too simple it does not matter as you can later extend the domain. Usually modeling some static structures or data is easier than creating a DSL that models functionality or behavior. Build the language incrementally and use some tool so you can test the language immediately (I don’t know anybody who gets it right in the first place). Often building is best to start from the core concepts. Give then the language early to potential users, or get them involved already in language definition phase (a longer discussion with various DSLs can be found from http://www.dsmbook.com).

2) a nice tutorial to develop DSL?
Code Generation 2011 (http://www.codegeneration.net/cg2011/programme.php) offers several tutorials on this topic and at least a couple are executed in a hands-on style. If you prefer to carry a tutorial with own pace and time then you might be interested to check the tutorials at http://www.metacase.com/support/45/manuals/ (in particular the Evaluation Tutorial).

Thank you for the kind and detailed reply. First of all LWC is a good event and it is really helpful in many ways specially comparing different tool to develop DSLs. Secondly, you have given a very good idea to get started developing DSL by starting with static modeling and evolving the DSL to incorporate other aspects. Third, I have visited websites that you have suggested for tutorials. I need time to explore. Fourth, the book you have suggested by Steven Kelly is very nice as it discusses core concepts and its one complete portion discusses few examples. By chance, I have this book with me :-)
You might be interested in

http://www.xocp.org/quickstart/toc

With OCPs you can use XML based DSLs, which work out of the box based on a given target Java object model, are extensible incrementally, can be tuned up to nicely readable documents, and much more.

If you have questions, don't hesitate to ask me.

Andreas

Hi,

 

Perhaps you will find my tutorial "Interactive DSML Design" useful (URL: http://tinyurl.com/5wcx5lu). It gives an overview of techniques to capture, simplify and make more expressive domain concepts, before going into DSL implementation (aka metamodel).

 

I agree with other comments that the choice of a language workbench is very important, as it affects the gap between your domain concepts and a working metamodel. From my experience I can recommend any of the following: AToM3, MetaEdit+ or Obeo Designer (free or free trials are available).

 

Good luck and please post about your experience.

 

Hi Andriy,

Thank you for your concern and reply. You are right that the choice of a language workbench is very important. Secondly, thanks for suggesting me the URL. Allow me some time to go through it.

 

Thanks

RSS

Badge

Loading…

© 2017   Created by Mark Dalgarno.   Powered by

Badges  |  Report an Issue  |  Terms of Service