Speaking of XML, there's another good example of a special-purpose DSL, designed for efficient processing of OSM map data, described here: <meta http-equiv="content-type" content="text/html; charset=utf-8"><a href="http://swizard.livejournal.com/142027.html">http://swizard.livejournal.com/142027.html</a> (text in Russian).<div>

<br><div class="gmail_quote">On Wed, Jul 20, 2011 at 4:32 PM, Didier Verna <span dir="ltr"><<a href="mailto:didier@lrde.epita.fr">didier@lrde.epita.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
  Dear friends,<br>
<br>
I'm starting to write a chapter for an upcoming book on domain specific<br>
languages. The chapter is called (tentatively):<br>
<br>
Extensible languages -- blurring the distinction between DSLs and GPLs<br>
<br>
GPL meaning General Purpose Language in this context ;-)<br>
<br>
<br>
My intention is to demonstrate how the task of implementing a DSL is<br>
made easier when it boils down to an extension or subset of your<br>
original GPL (hence reusing its infrastructure), instead of being a<br>
totally different language, only written on top of the other.<br>
<br>
Obviously, I'm going to illustrate this with Common Lisp, and I intend<br>
to speak of dynamicity (not only dynamic typing, but in general all<br>
things that can be deferred to the run-time), introspection,<br>
intersession, structural or procedural reflexivity, meta-object<br>
protocols (not sure about this one), macro systems and JIT-compilation.<br>
Also, more specifically to Lisp, reader macros (compiler macros maybe?),<br>
the condition system (and its ability to *not* unwind) and restarts.<br>
<br>
<br>
Right now, I would like to know if any of you have DSL "pearls", nice<br>
examples of DSLs that you have written in Lisp by using some of its<br>
features in a clever or elegant way. I would also gladly accept any<br>
point of view or comment on what's important to mention, in terms of<br>
design principle or anything else, things that I may have missed in the<br>
list above.<br>
<br>
<br>
Thank you very much in advance!<br>
<br>
--<br>
Resistance is futile. You will be jazzimilated.<br>
<br>
Scientific site:   <a href="http://www.lrde.epita.fr/~didier" target="_blank">http://www.lrde.epita.fr/~didier</a><br>
Music (Jazz) site: <a href="http://www.didierverna.com" target="_blank">http://www.didierverna.com</a><br>
<br>
_______________________________________________<br>
pro mailing list<br>
<a href="mailto:pro@common-lisp.net">pro@common-lisp.net</a><br>
<a href="http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro" target="_blank">http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro</a><br>
</blockquote></div><br></div>