Shells also offer a simple interface to running and controlling processes.
They contain simple control-flow and string manipulation mechanisms, that cover a lot of common usages. DSLs have also been called micro-languages, application languages, and very high level languages. DSL - A Specification Language Perspective Because DSLs can be highly declarative and hide much of the implementation details, some of them can be considered more as specification languages than programming languages. Those specifications are often executable, though. Consider for example the Unix command make .