マクロ (コンピュータ用語)
Lisp のマクロ処理は、Lisp のプログラム自体が Lisp のリストオブジェクトで表現されるもの(S式)であることを利用し、S式をS式に変換する関数により行われるものであり、この節の他のマクロ(C++のテンプレートを除く)がテキストベース(トークンベースを含む)であるのに対し、テキストベースではない変換系である点で全く異なったものである。プログラムが実行される前に自由に構文木(S式)を操作できるため、Lisp では(他の言語におけるキーワードに相当する)特殊形式も、利用者が自由に追加変更できるという特徴となっている(なお、一部の Lisp にあるリードマクロは読み込み時に働くため、より言語をカスタムする自由度が大きい)。
Lisp でのマクロについては以下の書籍が参考になる。
Paul Graham, On Lisp (邦訳版は www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/から読める)
Doug Hoyte, Let Over Lambda (letoverlambda.com)
表計算ソフトをはじめ多くのアプリケーションソフトウェアで、作業を自動化するためのキーボードマクロ機能やマクロプログラミングが利用できる。