Custom Search

Little Languages

'Little Language' is actually a technical term from the academic computer science world as you have to be quite the 'geek' to use them.

'Little languages' are some of the most powerful practical tools available for specialized tasks.

An analogy might be useful for you to understand how a programming langauges are used. Think of building a program as being like a woodwork project - and the tools you use to craft your project are the programs:

A Very Little Language is like a knife, which can be used in thousands of different ways, from cutting food to cutting down trees.

A domain-specific language is like an electric drill: it is a powerful tool with a wide variety of uses, but a specific context, namely, putting holes in things.

A General Purpose Language is a complete workbench, with a variety of tools intended for performing a variety of tasks.

Domain-specific languages should be used by programmers who, looking at their current workbench, realize they need a better drill, and find that a particular domain-specific language provides exactly that.

Here are some examples of 'little languages':

    • Procmail
    • cfengine
    • Makefiles
    • Apache Configurations
    • sed
    • m4
    • Shell languages
    • Lexical analyzer generators
    • Parser generators
    • Hardware Description Languages

Some example borderline languages are:

    • Awk
    • Postscript

Little languages are also sometimes called Domain Specific Languages, they are highly expressive for a given type of problem, since they are usually made especially for that problem.

How can you create a little language?

Creating a little language involves issues that many programmers have no experience with. Creating a lexical analyzer, and parser is a relatively easy task compared to deciding on the structure of your language, the meaning of statements in the language, and a good way to express the task.

However if your task is one you commonly undertake the effort can pay off in time (which means in money when it is a business matter).

The first thing you have to do when creating a little language is to look at the problems from all angles and know exactly what you want the program to do.

  • List all of the kinds of data your language will need to deal with, and the types of computations it will need to carry out.
  • Timing and the sequence of certain events needs to be put in a flowchart diagram so you can see the processes involved.
  • How the files are to be processed - all at once or in batches of a given type.
  • You might need to read and interpret input data from devices or network connections.

There are programmers who will help you create a little program for a business. The cost of employing their services can often be recouped quickly by the increase in efficiency the program produces.