REDUCE オプションは、コンパイラーが、構造体に対する ヌル・ストリングの割り当てを縮小して、 単純なコピー操作にすることを認められることを指定します。 その操作が、埋め込みバイトの上書きを意味するにすぎない場合もあります。
REDUCE オプションを使用すると、ヌル・ストリングを構造体に 割り当てるために生成されるコードの行数が少なくなり、 その結果として通常はコンパイルが高速になり、コードの実行速度が大きく向上します。しかし、埋め込みバイトはゼロにリセットされることがあります。
例えば次の構造体では、field11 と field12 の間に 1 バイトの埋め込み があります。
dcl
1 sample ext,
5 field10 bin fixed(31),
5 field11 dec fixed(13),
5 field12 bin fixed(31),
5 field13 bin fixed(31),
5 field14 bit(32),
5 field15 bin fixed(31),
5 field16 bit(32),
5 field17 bin fixed(31);
ここで、割り当て sample = ’’; について考えてみます。
NOREDUCE オプションを指定した場合、8 つの割り当てが生成されますが、埋め込みバイトは変更されません。
しかし、REDUCE を指定した場合、その割り当ては 3 演算に削減されます。