Ref:
http://www.paulgraham.com/diff.html
http://www.martinfowler.com/bliki/DomainSpecificLanguage.html
http://www.paulgraham.com/progbot.html
http://martinfowler.com/dsl.html
internal DSL:
Write your own API libraries
LISP, higher level abstraction for your program, bottom-up programming, " When youwork bottom-up, you usually end up with a different program.Instead of a single, monolithic program,you will get a larger language with more abstract operators, and a smaller program written in it. Instead of a lintel,you'll get an arch."
GCI library? webapp framework?
external DSL:
Used for:
code generation
Interpretation? read and run
configuration language
Examples:
makefile
YACC, LEX
RE
graphviz .dot file
SWIG config file
doubango bindings, some other programs' bindings generation
ragel state machine compiler:
HTTP parser for mongrel
doubango tinyDEMO config
vlc stream configuration, VLM config
XML