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.