Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

データ属性

計算データ、プログラム制御データ、およびプログラム特性を示します。

AREA
BINARY
BIT
CHARACTER
COMPLEX
DECIMAL
DIMENSION
ENTRY
FILE
FIXED
FLOAT
FORMAT
GRAPHIC
HANDLE
LABEL
NONVARYING
OFFSET
ORDINAL
PICTURE
POINTER
PRECISION
REAL
RETURNS
SIGNED
STRUCTURE
TASK
TYPE
UNSIGNED
UNION
VARYING
VARYINGZ
WIDECHAR

非データ属性

非データ・エレメント (例えば、組み込み関数) を示すか、 またはほかのデータ属性を持つエレメントに説明を追加します。

ABNORMAL
ALIGNED
ASSIGNABLE
AUTOMATIC
BASED
BIGENDIAN
BUFFERED
BUILTIN
BYADDR
BYVALUE
CONDITION
CONNECTED
CONTROLLED
DEFINED
DIRECT
ENVIRONMENT
EXCLUSIVE
EXTERNAL
GENERIC
HEXADEC
IEEE
INITIAL
INPUT
INTERNAL
KEYED
LIKE
LIST
LITTLEENDIAN
NONASSIGNABLE
NONCONNECTED
NORMAL
OPTIONAL
OPTIONS
OUTPUT
PARAMETER
POSITION
PRINT
RECORD
SEQUENTIAL
STATIC
STREAM
UNALIGNED
UNBUFFERED
UPDATE
VALUE
VARIABLE

例えば、CHARACTER というキーワードは、 計算データのストリング・タイプのデータ属性です。 FILE というキーワードは、プログラム制御データのファイル・タイプのデータ属性です。 INTERNAL という有効範囲属性は、データ項目が宣言されるブロック内でのみ、 そのデータ項目が認識されることを指定します。

キーワードと式を使用して属性を指定する方法の詳細 については、データ宣言を参照してください。 属性を指定する方法の概略は次のとおりです。

表 7表 8 は、 PL/I の各種の属性と、計算データおよびプログラム制御データの 各タイプとの関連を示しています。 これらの表では、定数と名前のついた定数を表しており、示された データ属性と有効範囲属性 (表 7) だけを持つことができます。 変数を使用して付加属性を指定することができます (表 8)。

以下に例を示します。

  Area = (Radius**2)*3.1416;

定数 3.1416 には、次のような属性が指定されます。

(表 7 の「コード化算術式」の行、 および「データ属性」と「有効範囲属性」の列を参照してください。)

定数 1.0 (10 進固定小数点定数) は、定数 1 (もう 1 つの 10 進固定小数点定数)、 '1'B (ビット定数)、'1' (文字定数)、 1B (2 進固定小数点定数) または 1E0 (10 進浮動小数点定数) とは異なります。

以下の例では、変数 Pi は 5 桁の 10 進数で、 そのうちの 4 桁は小数点の右側にあるという PRECISION のついた、FIXED および DECIMAL というプログラマー定義のデータ属性があります。

  declare Pi fixed decimal(5,4) initial(3.1416);

この DECLARE ステートメントには、Pi についてのほかの属性を 持たないので PL/I は、残りの属性のデフォルトを適用します。

(表 8 のコード化算術式の行を参照してください。)

表 7. 定数タイプによる属性の分類
定数タイプ
データ属性
1 および 2
有効範囲属性
1 および 2
コード化
算術
REAL | 虚数
FLOAT | FIXED
BINARY | DECIMAL
PRECISION
SIGNED
内部
名前つきのコード化
算術
REAL | COMPLEX
FLOAT | FIXED
BINARY | DECIMAL
PRECISION
VALUE
SIGNED | UNSIGNED
内部
ストリング演算子
BIT | CHARACTER |
GRAPHIC | WIDECHAR
(長さ)
内部
名前の付いたストリング
BIT | CHARACTER |
GRAPHIC | WIDECHAR
[(長さ)]
NONVARYING
VALUE
内部
名前の付いたロケーター
POINTER | OFFSET | HANDLE
VALUE
内部
名前の付いたピクチャー
PICTURE
REAL | COMPLEX
VALUE
内部
ファイル3
FILE ENVIRONMENT
STREAM | RECORD
INPUT | OUTPUT | UPDATE
SEQUENTIAL | DIRECT
BUFFERED | UNBUFFERED4
KEYED
PRINT
INTERNAL | EXTERNAL
入り口5
ENTRY [RETURNS] 
INTERNAL | EXTERNAL
フォーマット5
FORMAT
内部
ラベル5
LABEL
内部
注:
  1. この表の中で大文字で表されている属性は、明示的に宣言されます。 小文字の属性は、暗黙的にデータ・タイプに指定されます。
  2. データ属性のデフォルトには下線が引かれています。 リテラル定数のデータ属性はコンテキストに応じて異なるので、デフォルトは適用されません。 名前のついた定数およびファイル定数には選択可能な属性があるので、デフォルトが示されます。
  3. ファイル属性は、入出力に記載されています。
  4. BUFFERED は、SEQUENTIAL ファイルのデフォルトです。 UNBUFFERED は、DIRECT ファイルのデフォルトです。
  5. フォーマット定数およびラベル定数、ならびに INTERNAL 項目定数は、 DECLARE ステートメントでは宣言されません。
表 8. 変数タイプによる属性の分類
変数
タイプ
データ属性
位置合わせ
属性
有効範囲
属性
ストレージ
属性
区域
AREA(size)
ALIGNED
INTERNAL |
EXTERNAL
 
(INTERNAL は
 AUTOMATIC
 BASED
 DEFINED
 PARAMETER
 に必須)
AUTOMATIC |
STATIC |
BASED |
CONTROLLED
 
(AUTOMATIC は
INTERNAL についてデフォルト。
STATIC は
EXTERNAL について
デフォルト。)
 
定義された
変数:
DEFINED
  [POSITION]
 
パラメーター:
PARAMETER
[CONNECTED |
NONCONNECTED]
[CONTROLLED]
 
[INITIAL
[CALL]]
 
[VARIABLE]
 
[NORMAL |
ABNORMAL]
 
ASSIGNABLE |
NONASSIGNABLE
コード化
算術
1
REAL | COMPLEX
FLOAT | FIXED
BINARY | DECIMAL
PRECISION
[SIGNED |
UNSIGNED]
ALIGNED |
UNALIGNED
入り口
ENTRY [RETURNS]
[LIMITED]
ファイル
FILE
フォーマット
FORMAT
ラベル
LABEL
ロケーター
POINTER |  HANDLE |
{OFFSET
    [(区域変数)]}
序数
ORDINAL
ピクチャー
PICTURE
REAL | COMPLEX
ALIGNED |
UNALIGNED
ストリング演算子
BIT | CHARACTER |
GRAPHIC | WIDECHAR
[(長さ)]
[VARYING |
VARYINGZ |
NONVARYING]
タスク
TASK
ALIGNED |
UNALIGNED
配列: DIMENSION は任意の変数の宣言に追加できます。 詳細については、配列を参照してください。
構造体および共用体
  • 主要な構造体および共同体の場合: 有効範囲、ストレージ (INITIAL 以外)、位置合わせ、 STRUCTURE または UNION、および LIKE 属性を指定することができます。
  • 構造体あるいは共同体であるメンバーの場合: 位置合わせ、STRUCTURE または UNION、および LIKE 属性を指定することができます。
  • メンバーは、常に INTERNAL 有効範囲属性を持ちます。
詳細については、構造体 および 共用体を参照してください。
注:
  1. 宣言しなかった名前や、データ・タイプを指定せずに宣言した名前は、コード化算術変数と見なされます。 デフォルト属性は、属性のデフォルトに記載されています。 示されるデフォルトは、IBM デフォルトです。 ANS デフォルトは、FLOAT と DECIMAL ではなく FIXED と BINARY です。
  2. POSITION は、ストリング・オーバーレイ定義を使用した場合だけ使用することができます。

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)