positiveSignIndicator ビルド記述子オプションは、パフォーマンスを向上させるために iSeries® 環境でのみ使用されます。
iSeries 用の COBOL プログラムを生成する際に、
positiveSignIndicator ビルド記述子オプションで、
iSeries ベースの ILE COBOL コンパイラーがゾーン 10 進数データおよびパック 10 進数データの正符号として使用する文字を指定します。
次のタイプの数値データが影響を受けます。
- DECIMAL
- MONEY
- NUM
- NUMC
- PACF
潜在的な問題は、COBOL コンパイラーが、これらすべてのデータ型に対して指定された正符号文字を使用することです。これと対照的に、EGL は、以下のように、デフォルトで文字の混合を使用します。
- NUM および PACF はデフォルトで F に設定されます。
- NUMC、DECIMAL、および MONEY はデフォルトで C に設定されます。
COBOL コンパイラーがすべての正符号文字を C に設定した場合、EGL は通常、実行時にすべての NUM および PACF 変数を F に変更します。同様に、コンパイラーがすべての文字を F (デフォルト) に設定した場合、EGL は、すべての NUMC、DECIMAL、および MONEY 変数を C に変更します。
したがって、positiveSignIndicator ビルド記述子オプションを指定する通常の目的は、パフォーマンスを向上させることにあります。コードに含まれる NUMC、DECIMAL、および MONEY の変数の出現箇所が NUM および PACF の変数
よりも多い場合は、positiveSignIndicator を C に設定して
パフォーマンスを向上させることができます。この場合、実行時に変更する変数の数が減るため、EGL が生成するコードも少なくなります。
デフォルトの EGL の振る舞いをオーバーライドするために、もう 2 つの値が使用可能です。
positiveSignIndicator を F-ALL に設定すると、EGL は、すべての NUMC、DECIMAL、および MONEY 変数を C に変更できません。同様に、C-ALL に設定すると、EGL は NUM および PACF 変数を F に変更できません。
独自のコードが NUM および PACF 変数のみの場合、またはすべての変数に F 正符号を付ける場合は、F-ALL を選択することによって、大幅なパフォーマンス上の利点が
あります。この選択によって、符号を変更するための EGL ランタイム呼び出しの生成がすべて
避けられます。同様に、独自のコードが NUMC、DECIMAL、および MONEY 変数のみの場合、またはすべての変数に C 正符号を付ける場合は、C-ALL を選択することによって、大幅なパフォーマンス上の利点があります。
値
- F (デフォルト値)
- これは、COBOL コンパイラーにより、すべての DECIMAL、MONEY、NUM、NUMC、および PACF 変数が、正符号文字として「F」を使用するよう事前設定されることを指定します。EGL は、実行時に NUMC、DECIMAL、および MONEY 変数の符号を C に変更します。
- C
- これは、COBOL コンパイラーにより、すべての DECIMAL、MONEY、NUM、NUMC、および PACF 変数が、正符号文字として「C」を使用するよう事前設定されることを指定します。EGL は実行時に NUM および PACF 変数の符号を F に変更します。
- F-ALL
- これは、COBOL コンパイラーにより、すべての DECIMAL、MONEY、NUM、NUMC、および PACF 変数が、正符号文字として「F」を使用するよう事前設定されることを指定します。EGL は実行時に、どの正符号も C に変更しません。
- C-ALL
- これは、COBOL コンパイラーにより、すべての DECIMAL、MONEY、NUM、NUMC、および PACF 変数が、正符号文字として「C」を使用するよう事前設定されることを指定します。EGL は実行時にどの正符号も F に変更しません。