Next: , Previous: Preliminaries, Up: Preliminaries


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