コンパイラでは、必要な追加の属性が次のように提供されます。
指定されている属性 |
不足している属性 |
提供される属性 |
binary |
fixed | float |
fixed |
decimal |
fixed | float |
fixed |
fixed |
binary | decimal |
decimal |
float |
binary | decimal |
decimal |
static |
internal | external |
internal |
bit |
length |
length = 1 |
character |
length |
length = 1 |
area |
size |
size = 1000 |
そのほかに、次のような場合にもデフォルト値が提供されます。
- EXTERNAL がストレージ クラスなしで指定されていて、宣言されている名前がエントリ定数でもファイル定数でもない場合は、STATIC が提供されます。
- パラメーターではない変数の名前が指定されていて、その変数が構造体のメンバーではなく、ストレージ クラスも指定されていない場合は、AUTOMATIC が提供されます。
- 算術データの精度が指定されていない場合は、デフォルトの精度が提供されます。Open PL/I のデフォルトの精度については、『Open PL/I ユーザー ガイド』を参照してください。
- FILE または ENTRY でストレージ クラス、配列バインド、またはメンバーのレベル番号が指定されている場合は、VARIABLE が提供されます。
- FILE または ENTRY が指定されていて、VARIABLE が指定されておらず、前のルールに基づいて提供されもしない場合は、EXTERNAL が提供されます。この場合、その名前付きオブジェクトは、変数ではなく定数です。
- ビット文字列のデータに対しては UNALIGNED が提供され、他のすべてのタイプのデータに対しては ALIGNED が提供されます。