1 つの算術ステートメントが複数の結果を持つとき、実行は概念的に次のように進められます。
- このステートメントは、すべての算術演算を行って受け入れ項目に入れるべき 1 つの結果を出し、その結果を一時的な場所に保管します。
- 一連のステートメントは、この一時結果の値を、それぞれの受け入れフィールドに移すか、
またはそれぞれの受け入れフィールドと組み合わせます。
これらのステートメントは、複数の結果がリストされているのと同じ左から右への順序で書かれているものと見なされます。
例えば、次のステートメントを実行するとします。
ADD A, B, C, TO C, D(C), E.
これは、次の一連のステートメントを実行するのと同じです。
ADD A, B, C GIVING TEMP.
ADD TEMP TO C.
ADD TEMP TO D(C).
ADD TEMP TO E.
上の例では、TEMP はコンパイラーによって与えられる一時的な結果フィールドです。
D(C) との加算が行われるとき、添え字 C に C の新しい値が入ります。
注: 算術ステートメントの実行中に生成される中間結果はシステム特有のものであり、プログラムの可搬性に影響します。
算術ステートメントとして COMPUTE の代わりに ADD、SUBTRACT、MULTIPLY、および DIVIDE を独立して使用すれば、
不整合な結果が生じる危険性を少なくすることができます。