Lambda the Ultimate

inactiveTopic When and How to Develop Domain-Specific Languages
started 4/28/2004; 4:21:44 AM - last post 4/30/2004; 8:03:28 AM
Ehud Lamm - When and How to Develop Domain-Specific Languages  blueArrow
4/28/2004; 4:21:44 AM (reads: 24659, responses: 3)
When and How to Develop Domain-Specific Languages
When and How to Develop Domain-Specific Languages. Marjan Mernik, Jan Heering, Anthony M.Sloane. Submitted for publication to ACM Computing Surveys

Yet another paper on DSL design patterns.

The paper provides a nice analysis of the tradeoffs of different design approaches (e.g., embedding vs. building a compiler). The bibliography is a good soruce for example DSLs.

As you might expect I don't agree with "Lesson 3" quoted in section 2.4: Design only what is necessary.

Of course, "over-design" is bad. But "no design" is worse. Languages are not as simple as they appear to the casual observer, and some design effort (or great intuition) is required in order to reap the benefits a DSL can provide.

Perhaps the best tip for those trying to design DSLs is to acquaint themselves with well designed DSLs. Experience is, of course, important for any design activity. I think it is of even higher importance for DSL design and language design in general.

Opionions, anyone?


Posted to DSL by Ehud Lamm on 4/28/04; 4:25:25 AM

Peter Van Roy - Re: When and How to Develop Domain-Specific Languages  blueArrow
4/28/2004; 10:23:50 AM (reads: 478, responses: 0)
Ehud: As you might expect I don't agree with "Lesson 3" quoted in section 2.4: Design only what is necessary.

Dave Parnas makes the distinction between 'short-sighted simplicity' and 'visionary simplicity'.

Sébastien Pierre - Re: When and How to Develop Domain-Specific Languages  blueArrow
4/29/2004; 1:21:31 AM (reads: 387, responses: 0)
Regarding the "when to develop a DSL", I consider it equivalent to deciding wether to extend an existing language (with a specific API) or to create a new language that offers convenient syntax for the domain.

I actually had to work on a IP-telephony (SIP) domain language, and was surprised of how "dynamic" languages (in particular Io - http://www.iolanguage.com) were versatile: it was so easy to add new primitive and constructs that my API gave a totally different feel than usual Io code.

Since then, I always wonder how far an API could transform such languages, and think that provided the language has enough "dynamic" traits, it can be easily turned into a DSL, based on the host language core syntax.

Ehud Lamm - Re: When and How to Develop Domain-Specific Languages  blueArrow
4/30/2004; 8:03:28 AM (reads: 225, responses: 0)
based on the host language core syntax.

Syntax should be given more attention. PL theory concentrates on semantics, but practitioners working in the field should remember that syntax has a large effect on language success.