lexfiend 2 Mar 2006: A domain-specific language is, generally speaking, a language purpose-built for a specific problem domain. Some examples:
Aside from the concept of domain suitability alluded to above, many have tried to further pin down the defining characteristics of a DSL. For instance, see [L1 ] [L2 ] [L3 ]. Microsoft has its own visual-programming take on DSLs: [L4 ].
So is Tcl a DSL?
Well, yes and no. Tcl was originally designed as a tool command language, and in the earliest days, that's exactly how it was used -- embedded in an application for control purposes.
Nowadays, of course, most developers simply use Tcl as a general scripting language. Used in that fashion, it's no more a DSL than Perl, Python or Ruby (PPR).
However, Tcl is one of those rare languages in which it's easy to create a proper DSL (i.e. one that minimizes/eliminates everything except the features specific to the domain) no matter the usage environment. The secret sauce is, of course, safe or [interp create -safe].
[programming by exception - lexfiend: what does it have to do with DSLs?]