AWK や C 言語では、自分用の関数 (サブルーチン) を作って それを自分で使うことができますが、その場合 C 言語では、
double f1(double x) { .... } int main(void) { double x; x=f1(1.5); ....のように、関数を使う前に定義するか、
double f1(double x); int main(void) { double x; x=f1(1.5); .... } double f1(double x) { .... }のように、使う前に空の宣言だけを置く必要があります。 この空の宣言を プロトタイプ宣言 といいます。
プロトタイプ宣言は、関数の記述位置を考えなくていいようにするだけでなく、 コンパイル時に引数のチェックを行うようにもなっていて、 よって、引数の数が足りないとか、引数の型が不適切である、 といったバグを検出することを可能にする仕組みで、 現在の C では標準的な書き方となっています。
なお、通常 C 言語のソースの先頭に
``#include <stdio.h>
'' のようなインクルードファイルの指定を
書くと思いますが、
インクルードファイルの目的の一つは
標準ライブラリに対するプロトタイプ宣言です1。
プロトタイプ宣言は、ソースの先頭に書くか、 あるいは別なファイルに書いておいて そのファイルをインクルードするか、のどちらかの方法が取られます。
プロトタイプ宣言を作るには、関数の定義の先頭の部分をコピーして、 最後に `;' をつければいいのですが、 たくさん関数がある場合は、それを手作業でいちいちやるのは面倒です。 そこで、そのような作業を行うツールを AWK で書く、 というのが本稿の目標です。