私はこのトピックについていくつかの調査を行ってきましたが、適切な具体的な答えは見つかりませんでした. コードに次の式があるとします。
B = 2
…
B = B + 5
…
B = J + B
…
(これらは非常に単純な例であり、現実的ではないことはわかっています)
B
には、これらの行全体でさまざまな値があります。1 行目では で2
、後で になり7
、さらに後で になり7 + J
ます。コンパイラは のこれらの異なる値を追跡する必要があるためB
、1 つの方法はそれらの名前を変更することです。たとえば、B
が として再定義されるとB = B+5
、 に変更される可能性がありますB1 = B+5
。最後の再定義は次のようになりますB2 = J+B1
。
このアイデアの背後にある動機は、私が構築している最適化プログラムに関係しています。変数を関連する式に置き換える必要があります。ただし、変数が再定義された場合、文字「B」は一度に複数のことを意味する可能性があります。物事を追跡するために私が使用している方法は、変数名を再定義して、上で説明したものです。
これはコンパイラの仕組みですか?これに名前はありますか?
変数を再定義する場合にコンパイラが変数を再定義するこのプロセスについて、できる限り多くのことを見つけようとしています。
それが役立つ場合、これはコンパイルの前処理段階で行われると思います。マクロ展開と同様の概念だと思います。
編集:質問にもう少しコンテキストを追加しました。