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 で書く、 というのが本稿の目標です。