Version 1 of domain-specific language

Updated 2006-03-02 15:48:20 by lexfiend

lexfiend 2 Mar 2006: A domain-specific language is, generally speaking, a language purpose-built for a specific problem domain. Some examples:

  • Text processing: awk, sed, m4
  • Document preparation: LaTeX, roff
  • Page description: PostScript
  • Software development: make, lexx, yacc

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?]