コンパイラが加算の可換性を利用することを許可されている場合、代わりに次のように生成されるかもしれない。
ほとんどのプログラミング言語の整数データ型は、整数のオーバーフローがない場合に数学の整数の代数に従うだけであり、また、ほとんどのプログラミング言語で利用可能な浮動小数点データ型の浮動小数点演算は、丸め効果においては可換ではなく、表現の順序の影響が計算結果の小さな違いとして現れることに注意すべきである（ただし、最初の小さな違いは、長い計算の間に任意の大きな違いに連鎖する可能性がある）。
プログラマが整数のオーバーフローや浮動小数点の丸め効果を気にする場合は、同じプログラムを元のハイレベルで次のようにコード化することができる。
関数呼び出しによるプログラム順序の影響.
多くの言語は文の境界をシーケンスポイントとして扱い、次のステートメントが実行される前に、ある文のすべての効果が完了するように強制する。これにより、コンパイラは表現されたステートメント順に対応するコードを生成することになる。しかし、ステートメントはしばしばより複雑で、内部の関数呼び出しを含むことがある。
このような効果を気にするプログラマは、元のソースプログラムをより厳密に表現することができる。
メモリ順序の具体的な問題.
ポインタ表現によるプログラム順序の影響.
もし代入された値がポインタ間接であったなら？
言語定義ではコンパイラがこれを次のように分解することはできそうにない。
 // コンパイラによって書き換えられる
 // 一般的に禁止されている 
しかしプログラマが整数オーバーフローの目に見えるセマンティクスを気にして、このステートメントをプログラムレベルで次のように分割したとする。
 // プログラマーが直接作成したもの 
 // エイリアシングを考慮して 
 // 上のエイリアスケースの代数的等価性