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.
Posted to DSL by Ehud Lamm on 4/28/04; 4:25:25 AM