次: 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
で健康を損なうおそれがあるので注意しましょう。