PL/I プログラムで使用する名前には、 それぞれ完全な属性のセットが必須になります。 プロシージャーに渡された引数は、プロシージャーのパラメーターと一致する属性を持っていなければなりません。 関数が返す値は、予測されるとおりの属性を持っていなければなりません。 ただし、ユーザーが属性の完全なセットを指定するのはまれです。
特に、
上記の属性セットは、言語に固有のデフォルトを使用することにより、 または言語に固有のデフォルトの変更もしくはまったく新しい デフォルト・セットの作成を通じてユーザーが (DEFAULT ステートメントを使用し) 定義する デフォルトを使用することにより完成することができます。
デフォルトによって適用される属性が、明示宣言またはコンテキスト宣言によって名前に適用された属性に優先することはありません。