Metafont

Font compiler written by Donald E. Knuth, so that he could create fonts for his TeX program. Essentially a programmable bitmap editor, somewhat geared towards drawing letters and symbols.

The MetaFont scripting language has a mostly algol-style syntax, although it relies heavily on macro expansion. Despite looking much more like a "real" programming language than the meagre facilities provided in (Knuth's other major program) TeX, it turned out that TeX provided the more flexible programming environment of the two.

An interesting language feature is the built-in linear equation system solver. After the equations

  a = b-1;
  c = b+1;

the three variables a, b, and c are still unknown, but dependent. After the additional equation

  2a = c;

the state is instead that all three are known, with a=2, b=3, and c=4. MetaFont programs for drawing a character often start out with a bunch of equations expressing design decisions, and when sufficient information has been provided, all important points for the actual drawing are just known.

One algorithm that can be worth harvesting is that for determining a nice looking cubic Bezier path through given points. Also impressive is the mechanisms for drawing nice-looking strokes on a discrete grid, which had to make do without antialiasing.

See also: