컴파일러
컴파일러 내부에서 소스 언어에도 CPU에도 의존하지 않는 중간 표현(IR)을 사용하는 주된 이점은?
- A중간 표현을 사용하면 소스 코드를 읽지 않고도 컴파일할 수 있게 되기 때문에
- B중간 표현은 CPU가 그대로 실행할 수 있으므로 기계어 생성이 필요 없어지기 때문에
- C언어별 전단부와 CPU별 후단부를 분리할 수 있고 최적화도 공통으로 사용할 수 있기 때문에
정답과 해설 보기
정답: C. 언어별 전단부와 CPU별 후단부를 분리할 수 있고 최적화도 공통으로 사용할 수 있기 때문에
M종류의 언어와 N종류의 CPU를 지원할 때 조합마다 컴파일러를 만들면 M×N개가 필요하지만, 공통 중간 표현을 거치면 언어에서 중간 표현까지의 전단부(프런트엔드) M개와 중간 표현에서 CPU까지의 후단부(백엔드) N개로 충분합니다. 최적화의 상당 부분도 중간 표현 위에서 한 번 만들면 모든 언어와 CPU에서 사용할 수 있습니다. 중간 표현은 CPU가 그대로 실행할 수 있는 것이 아니며, 마지막에 기계어로 변환해야 합니다.
- A. 소스 코드는 반드시 읽어야 합니다.
- B. 중간 표현은 CPU가 직접 실행할 수 없으며 기계어로의 변환이 필요합니다.
- C. 올바릅니다. 전단부와 후단부를 분리하여 최적화를 공통화할 수 있습니다.