1.1 m4の紹介
m4は、入力を出力へコピーしながらマクロを展開するという意味でのマクロプロセッサです。マクロには組み込みのものとユーザー定義のものがあり、任意の個数の引数を取れます。単にマクロを展開するだけでなく、m4には、名前を指定したファイルの取り込み、シェルコマンドの実行、整数演算、さまざまなテキスト操作、再帰などの組み込み機能があります。m4は、コンパイラのフロントエンドとしても、独立したマクロプロセッサとしても使えます。
m4マクロプロセッサはあらゆるUNIXで広く利用でき、POSIXで標準化されています。通常、その存在を知っているユーザーはごく一部です。しかし、見つけた人は熱心なユーザーになることがよくあります。GNU Autoconfはconfigureスクリプトの生成にGNU m4を必要とするため、その人気が、多くの人にインストールを促しています。ただし、こうした人たちは自分でm4のプログラムを書くわけではありません。GNU m4は、いくつかの小さな違いを除き、System V Release 4版とほぼ互換です。詳しくは、他の版のm4との互換性を参照してください。
m4にかなり夢中になる人もいます。最初はm4を簡単な問題に使い、次第に大きな課題に挑戦しながら、複雑なm4マクロ群の書き方を学んでいきます。すっかり夢中になると、簡単な問題を解くためにも高度なm4アプリケーションを書こうとし、本来の作業よりもm4スクリプトのデバッグに多くの時間を費やします。プログラミングにのめり込む人にとって、m4は健康を損なうおそれがあることに注意してください。