컴파일러
레지스터 할당의 준비로 수행하는 생존 구간(라이브니스) 분석에서 구하는 것은?
- A프로그램 전체에서 각 변수가 선언된 줄의 번호
- B변수 값의 최댓값과 최솟값
- C각 시점에서 그 값이 나중에 아직 사용될 가능성이 있는지 여부
정답과 해설 보기
정답: C. 각 시점에서 그 값이 나중에 아직 사용될 가능성이 있는지 여부
생존 구간 분석에서는 프로그램의 각 시점에서 어떤 값이 이후에 읽힐 가능성이 있는지(살아 있는지)를 제어 흐름 그래프를 따라가며 구합니다. 살아 있는 값은 레지스터에 유지해 두어야 하지만, 더 이상 사용되지 않는 값의 레지스터는 다른 값에 재사용할 수 있습니다. 동시에 살아 있는 값끼리는 같은 레지스터에 넣을 수 없으므로, 이 결과로 간섭 그래프를 만듭니다. 선언 위치나 값의 범위를 구하는 분석이 아닙니다.
- A. 선언 위치가 아니라 사용될 가능성을 조사합니다.
- B. 값의 범위를 구하는 분석과는 다른 것입니다.
- C. 올바릅니다. 각 시점에서 값이 아직 사용되는지를 구합니다.