名前の宣言

名前の意味は、通常は宣言で定義されます。ただし、場合によっては、その名前が使用されるコンテキストで暗黙的に宣言されることもあります(詳細については、「コンパイラによって提供されるデフォルト値」および「DEFAULT」のセクションを参照してください)。名前の宣言は、ユーザー指定の識別子およびその名前の属性で構成されます。

Open PL/I では、DECLARE 文およびラベル プレフィックスという 2 種類の明示的な宣言が可能です。

DECLARE 文は、ファイルの名前、変数の名前、および外部プロシージャの名前を宣言します。DECLARE 文は、複合文の中でなければ、プログラム内の任意の場所に記述できます。DECLARE は実行可能な文ではなく、いずれの場所に記述されている場合も、名前の意味を定義する以外の効果はありません。

例:

DECLARE F FILE;
DECLARE A(5) FLOAT;
DECLARE (I,J,K) FIXED BINARY(15);

この例では、F をファイル定数の名前、A を浮動小数点の配列の変数、I、J、および K を整数の変数として宣言しています。

ラベルは、ラベル プレフィックスとも呼ばれ、プログラム内の別の場所で参照できるように文に名前を付けるユーザー指定の識別子です。ラベルは後ろにコロン (:) を付けて文の前に記述されます。

例:

F: FORMAT(F(8,2),A(5)); 
P: PROCEDURE;
L: READ FILE(F) INTO(X);

この例では、F を形式名、P をプロシージャ名、L を文ラベルとして宣言しています。

ラベルは、DECLARE 文、ON 文のターゲット文 (On-unitunit と呼ばれる)、IF 文の ELSE 句および THEN 句、SELECT 文の WHEN 句および OTHERWISE 句を除くすべての Open PL/I 文で記述できます。