Abstract from, and link to, my most recent paper:
We believe that the appropriate characterization of when a language is a DSL, and when it is not, is best made through examination of the relative assignment of resources to a project. We present a new approach to the construction of text transform tools for the prodution of DSLs, and some constraints which shape this approach; not an examination of a specific implementation or architecture. We emphasize the use of ubiquitous tools to do transforms. A reader with concrete experience in some lexer and some parser generation packages, and some XML library with XSLT features, should be able to produce a tool using this approach in a day or two. The presentation is at a high enough level that the reader without this concrete and immediately applicable knowledge can still follow the approach. The goal is to make the production of small domain-specific languages common by promoting simplicity of implementation and use of the tools at hand. We use as an example the development of a parser for a simple parenthesis language. We also present a novel way of dealing with delimited lists in a parser specification.