Files
JargonFile/original/html/M/macro.html

22 lines
3.2 KiB
HTML
Raw Normal View History

2014-03-27 18:54:56 +00:00
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>macro</title><link rel="stylesheet" href="../../jargon.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.61.0"/><link rel="home" href="../index.html" title="The Jargon File"/><link rel="up" href="../M.html" title="M"/><link rel="previous" href="Macintrash.html" title="Macintrash"/><link rel="next" href="macro-.html" title="macro-"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">macro</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="Macintrash.html">Prev</a><EFBFBD></td><th width="60%" align="center">M</th><td width="20%" align="right"><EFBFBD><a accesskey="n" href="macro-.html">Next</a></td></tr></table><hr/></div><dt><a id="macro"/><dt xmlns="" id="macro"><b>macro</b>: <span xmlns="http://www.w3.org/1999/xhtml" class="pronunciation">/mak<61>roh/</span>, <span xmlns="http://www.w3.org/1999/xhtml" class="grammar">n.</span></dt></dt><dd><p> [techspeak] A name (possibly followed by a formal
<a href="../A/arg.html"><i class="glossterm">arg</i></a> 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.</p><p>The term <span class="firstterm">macro</span> 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
<a href="../H/HLL.html"><i class="glossterm">HLL</i></a>s, only to fall from favor as improving compiler
technology marginalized assembler programming (see
<a href="../L/languages-of-choice.html"><i class="glossterm">languages of choice</i></a>). 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).</p><p>Indeed, the meaning has drifted enough that the collective <span class="firstterm">macros</span> 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 <span class="firstterm">keyboard macros</span> supported in
some text editors (and PC TSR or Macintosh INIT/CDEV keyboard
enhancers).</p></dd><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="Macintrash.html">Prev</a><EFBFBD></td><td width="20%" align="center"><a accesskey="u" href="../M.html">Up</a></td><td width="40%" align="right"><EFBFBD><a accesskey="n" href="macro-.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Macintrash<EFBFBD></td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"><EFBFBD>macro-</td></tr></table></div></body></html>