[oops, I keep forgetting to add cl-pro email when replying.]
IMHO:
DSL can be made of a varying mix of abstraction, syntax and semantics. All of which can be achieved within CL using interpreter & compiler, macros, closures, reader macros, compiler macros, printing protocol and CLOS. These will help a lot, both the developer and the user.
check the following examples:
Corman CL Assembler DSL (check the source code for assembler.lisp and how elegantly normal x86 assembler syntax was introduced into CL code) http://www.cormanlisp.com/index.html
SBCL VOPs: http://sbcl-internals.cliki.net/Adding%20VOPs http://paste.lisp.org/display/41937
GOAL: Game Object Assembly Lisp ("...intermix assembly instructions seamlessly with higher-level code...") http://www.gamasutra.com/view/feature/2985/postmortem_naughty_dogs_jak_and_....
CLSQL: SQL syntax
CL-Typesetting: typesetting DSL
Prolog interpreter or compiler.
those are the ones I remember directly when talking about DSL in common-lisp
- Ala'a
On Thu, 28 Jul 2011 15:19:13 +0400 "Ala'a Mohammad" amalawi@gmail.com wrote:
those are the ones I remember directly when talking about DSL in common-lisp
Perhaps also of interest is CL-PPCRE, as if I remember it also allows access to the internal parse tree, and provides easy means to create/manipulate them...