<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>We have been working on what we call domain oriented languages for some time ranging from the first visual programming language for the MIT programmable brick (later Mindstorms) <a href="http://www.cs.colorado.edu/~ralex/papers/PDF/VL95-LEGOsheets.pdf">http://www.cs.colorado.edu/~ralex/papers/PDF/VL95-LEGOsheets.pdf</a></div><div><br></div><div>to AgentCubes (a 3D environment for end-users): <a href="http://www.cs.colorado.edu/~ralex/papers/PDF/AgentCubes_JVLC_article_inpress.pdf">http://www.cs.colorado.edu/~ralex/papers/PDF/AgentCubes_JVLC_article_inpress.pdf</a></div><div><br></div><div>Both of these programming environment are built in Common Lisp, are based on the concept of rules and have domain oriented interfaces to turn visual languages (via Lisp macros) into Lisp code.</div><div><br></div><div>Not sure this is what you are looking for but many people (teacher, students, ...) are using these kinds of domain oriented languages to build games and simulations: <a href="http://www.9news.com/news/local/article/202987/222/Teachers-play-video-games-for-science-">http://www.9news.com/news/local/article/202987/222/Teachers-play-video-games-for-science-</a></div><div><br></div><div>best,  Alex</div><div><br></div><div><br></div><div><br></div><div><br></div><br><div><div>On Jul 20, 2011, at 7:32 AM, Didier Verna wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><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">http://www.lrde.epita.fr/~didier</a><br>Music (Jazz) site: <a href="http://www.didierverna.com">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">http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro</a><br></div></blockquote></div><br><div>
<span class="Apple-style-span" style="font-size: 12px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Prof. Alexander Repenning</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><br class="khtml-block-placeholder"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px">University of Colorado</p><p style="margin: 0.0px 0.0px 0.0px 0.0px">Computer Science Department</p><p style="margin: 0.0px 0.0px 0.0px 0.0px">Boulder, CO 80309-430</p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><br class="khtml-block-placeholder"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">vCard: <a href="http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf">http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf</a></font></p><br class="Apple-interchange-newline"></span></span></span>
</div>
<br></body></html>