[techspeak] A name (possibly followed by a formal {arg} list) that is
equated to a text or symbolic expression to which it is to be
expanded (possibly with the substitution of actual arguments) by a
macro expander. This definition can be found in any technical
dictionary; what those won't tell you is how the hackish connotations
of the term have changed over time.
The term macro originated in early assemblers, which encouraged the
use of macros as a structuring and information-hiding device. During
the early 1970s, macro assemblers became ubiquitous, and sometimes
quite as powerful and expensive as {HLL}s, only to fall from favor as
improving compiler technology marginalized assembler programming (see
{languages of choice}). Nowadays the term is most often used in
connection with the C preprocessor, LISP, or one of several
special-purpose languages built around a macro-expansion facility
(such as TeX or Unix's [nt]roff suite).
Indeed, the meaning has drifted enough that the collective macros is
now sometimes used for code in any special-purpose application
control language (whether or not the language is actually translated
by text expansion), and for macro-like entities such as the keyboard
macros supported in some text editors (and PC TSR or Macintosh
INIT/CDEV keyboard enhancers).
[glossary]
[Reference(s) to this entry by made by: {mailing list}{TeX}]