This paper describes the design and implementation
of a system for typesetting mathematics.
The language has been designed to be easy to learn
and to use
(for example, secretaries and mathematical typists)
who know neither mathematics nor typesetting.
Experience indicates that the language can
be learned in an hour or so,
for it has few rules and fewer exceptions.
For typical expressions,
the size and font changes, positioning, line drawing,
and the like necessary to print according to mathematical conventions
are all done automatically.
The syntax of the language is specified by a small context-free grammar; a compiler-compiler is used to make a compiler that translates this language into typesetting commands. Output may be produced on either a phototypesetter or on a terminal with forward and reverse half-line motions. The system interfaces directly with text formatting programs, so mixtures of text and mathematics may be handled simply.
This paper is a revision of a paper originally published in CACM, March, 1975.