저는이 주제에 대한 연구를 해왔고 좋은 답변을 찾지 못했습니다. 의 당신이 당신의 코드에서 이러한 표현을 있다고 가정 해 봅시다 : 컴파일러는 어떻게 변수 이름을 변경합니까?
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 변경의 모든 필요한 단계를 추적하는 것은 프로그래머들의 임무입니다. –