我一直在對這個主題進行一些研究,還沒有找到好的具體答案。比方說,你在你的代碼有這些表達:編譯器如何更改變量名稱?
B = 2
…
B = B + 5
…
B = J + B
…
(這些都是很簡單的例子,我知道他們是不現實的)
B
擁有遍佈這些線的許多不同的值。在第一行它是2
,稍後它變成7
,以及更後面的7 + J
。編譯器需要跟蹤B
的這些不同值,所以一種方法是重命名它們。例如,當B
被重新定義爲B = B+5
時,它可以更改爲B1 = B+5
。最後的重新定義將看起來像B2 = J+B1
。
這個想法背後的動機涉及我正在構建的優化程序。它涉及用他們相關的表達來替換變量。然而,如果一個變量被重新定義,那麼字符'B'可以同時指多個事物。我用來跟蹤事物的方法就是我上面描述的,重新定義變量名稱。
這究竟是如何編譯器的工作?有沒有這個名字?
我試圖找出儘可能多地談談編譯器重新定義變量的情況下重新定義變量的過程。
如果有幫助,我相信這會在編譯預處理階段進行,我相信這是一個類似的概念,以宏擴展。
編輯:我給這個問題增加了一點內容。
請問這個問題是指任何編程語言?像C#,C++,VBA,VB.Net等?如果是這樣,請說明該標籤。如果不是,你可能不會得到很多答案。此外,由於它不完全符合SO標準,所以你的問題將被關閉是相當危險的...... –
我想我正在尋找任何編譯器,而不是任何特定的語言。我正在尋找使用中的概念,而不是特定的用法。 –
在我看來,每個編譯器都會改變/替換之前的變量值,而不會保留任何引用/跟蹤到之前的值(或者它在任何前一階段計算的值)。這是由於編譯過程的效率。程序員的工作是跟蹤B變化的所有必要階段,而不是編譯器。 –