Domain-Specific Languages

Domain-specific, or special-purpose, languages are designed for convenience in a narrow range of applications. They are generally assumed to be used primarily for very small programs (hence the name "mini-languages") and, in many cases, are intended for use by non-programmers (hence, "end-user languages"). In most cases, efficiency is not a major concern, and user convenience and conciseness is paramount.

Functional languages meet these requirements well. We would like to see more use of functional programming languages and concepts in the design of dsl's. Functional languages are marvelously concise, but also have powerful abstractions that allow programs to "scale up" to larger sizes; this addresses what is probably the most serious shortcoming of many dsl's, that they are very poor for programming any but very small programs.

We believe also that it is not too much to anticipate the possibility of language standardization of some kind. It is not clear that there need to be so many different languages; surely, they have a great deal in common, and they might well share much more, including much syntax.

To promote this outcome, we are working in several directions.

  • Jr (formerly FPERL). A functional language for string-processing and simple database operations and report generation.