m4
の由来ここに記されている歴史に関する覚え書きはきわめて不完全なものであり、 なんら権威あるものでもありません。事情に通じている方は、どうかこの節を ふさわしいものにするのを手伝ってください。
GPM
はm4
の重要な祖先です。
C. Stratchey: “A General Purpose Macro generator”, Computer Journal
8,3 (1965), pp. 225 ff を参照してください。
GPM
は、David Gries classic
“Compiler Construction for Digital Computers”でも簡潔に説明されています。
GPM
は純粋だったのに対して、
m4
は実生活にまつわる本物の複雑さを扱うことを意図したものでした。
そのため、たとえばマクロは前もって宣言しなくても認識されるようになり、
改行文字などの空白(whitespace)をスキップするのは簡単になり、多くの
構成要素が借り物ではなく内蔵されるようになりました。
もともとm4
はRational FORTRANプリプロセッサすなわちratfor
(cpp
に相当)のエンジンでした。