DSLs: How and When?

There's a discussion on Artima about domain-specific language development. Actually, there isn't too much discussion (yet), but there's a link to this ACM Computing Survey article (PDF), which looks quite good. It has a survey of DSL use cases, implementation techniques, etc., and explores some reasons to choose whether to implement a new DSL.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


I find it somewhat amusing that they reference this inane but serious language comparison. Did you know that JAVA [sic] is 20% more expressive than Lisp? A 5000-line application can be rewritten in only 600 lines of Lotus 1-2-3 code (DOS only), but would require 1360 lines if implemented in HTML. Symantec C++ is almost twice as good as "ordinary" C++, while Yacc beats LISP by only 17%.

Remember, it's "basically sound" and "potentially as useful to software engineering as the periodic table of the elements has been to chemical engineering and to physics."


That part is pretty silly. But, "SPR is conducting an on-going study of languages and their levels. For additional information, or to participate in this study, contact SPR Customer Support at..."

Maybe you should give them a call! ;)

All within the margin of error

My favorite bit is "The relationship between source code statements and Function Points has only been subject to research for a few years, so the margin of error in Table 2 can be quite high."

Translation: "I made up most of the data in Table 2".


Research was done by reading descriptions and genealogies of languages and making an educated guess as to their levels. KL, CLOS, TWAICE, and FASBOL are examples of languages that were assigned tentative levels merely from descriptions of the language, rather than from actual counts.

Probably be more scientific to go to 99 Bottles and count the number of lines of code per beer taken down.