ユーザーが定義する、変数名・定数名・引数名・プロシージャ名などを識別子と呼びます。識別子を定義するとき、重複した名前を使用したときなどに発生するエラーです。上図は、モジュールレベルの変数bufを宣言した直後に、同じ名前の定数を宣言しています。
プロシージャ内で定義するプロシージャレベルの識別子では、同じ重複でも異なるメッセージが表示されます。
よくやるのは、同じ名前のプロシージャを作成してしまうミスです。同じようなプロシージャを作成するとき、既存のプロシージャをコピーして、そのまま名前を変更しないとエラーになります。同じ名前のプロシージャは作成できないからです。
ちなみに、プロシージャの名前として指定できない文字列を指定した場合は、別のエラーが発生します。
プロシージャの名前は「先頭はアルファベットでなければダメ」「記号は_しか使えない」などの決まりがあります。