次: History, 前: Preliminaries, 上: Preliminaries
m4序説マクロを展開しながら入力を出力へコピーするという意味で、m4は
マクロプロセッサだと言えます。マクロにはm4に最初から組み込まれて
いる組み込み(builtin)マクロと、ユーザが自分で定義するユーザ定義
(user-defined)マクロの2種類があります。マクロは何個でも引数を
取ることができます。m4には単なるマクロの展開機能に加え、
ファイルのインクルード、UNIXコマンドの実行、整数演算、さまざまな方法での
テキスト操作、再帰、その他のための関数がそろっています。
m4はコンパイラのフロントエンドとして、またマクロプロセッサ
そのものとしても使うことができます。
m4マクロプロセッサは、ほとんどすべてのUNIXで利用することができます。
通常その存在に気づいているのは、ほんのわずかな人たちだけです。
しかし実際に気づいた人たちは往々にして熱心なユーザとなります。
GNU Autoconfでconfigureスクリプトを生成するにはGNU m4が
必要なため、GNU Autoconfの人気が高まったのがきっかけとなってGNU m4を
インストールする人が増えました。もっとも、そういう人が自分でm4の
プログラミングをすることは無いでしょう。GNU m4はわずかな違いを除けば
System V, Release 3 版とほぼ互換性があります。
詳細はSee Compatibilityを参照してください。
ユーザの中にはm4中毒になってしまった人たちもいます。
そういう人たちは最初は簡単なことにm4を使い、徐々に複雑なm4マクロ
の書き方を習得しながら、大きなこと大きなことへと挑戦していくのです。
いちど病みつきになってしまえば、簡単な問題を解くためにさえ洗練された
m4アプリケーションを書こうとして、実際の仕事よりも自分のm4スクリプト
のデバッグに多くの時間をさくことになるのです。
熱中しやすいプログラマーはm4で健康を損なうおそれがあるので注意しましょう。