컴파일러

LLVM의 기본 구성으로 올바른 것은?

  1. AC 언어 전용 컴파일러로, 다른 언어에는 사용할 수 없다
  2. B특정 CPU만을 대상으로 한 어셈블러와 링커의 조합
  3. C공통 중간 표현을 중심으로 전단부와 후단부를 조합한다
정답과 해설 보기

정답: C. 공통 중간 표현을 중심으로 전단부와 후단부를 조합한다

LLVM은 LLVM IR이라는 공통 중간 표현을 중심으로 한 컴파일러 기반입니다. C/C++의 Clang을 비롯해 다양한 언어의 프런트엔드가 소스를 LLVM IR로 변환하고, 공통 최적화 단계를 거친 뒤 x86, Arm, RISC-V, GPU 등 많은 CPU용 백엔드가 기계어를 생성합니다. 새로운 언어나 CPU를 지원할 때도 한쪽만 만들면 된다는 것이 강점입니다. C 언어 전용도, 특정 CPU 전용도 아닙니다.

  • A. 많은 언어의 프런트엔드가 있어 C 언어 전용이 아닙니다.
  • B. 많은 CPU용 백엔드가 있어 특정 CPU 전용이 아닙니다.
  • C. 올바릅니다. 공통 중간 표현을 중심으로 전단부와 후단부를 조합합니다.
이 분야 연습하기 분야로 돌아가기

컴파일러의 다른 문제

  1. 컴파일러의 최적화 수준을 지정하는 옵션에서 최적화를 하지 않는 설정(-O0 등)이 자주 사용되는 상황은?
  2. 프로파일을 이용한 최적화(PGO)에 대한 설명으로 올바른 것은?
  3. 링크 시 최적화(LTO)로 가능해지는 최적화로 가장 적절한 것은?
  4. C 언어에서 부호 있는 정수의 오버플로는 미정의 동작이다. 이 전제에서 위의 함수를 최적화하는 컴파일러가 생성할 수 있는 코드로 올바른 것은?
  5. 프로그램의 오류 중 컴파일 시점에 발견할 수 있는 것은?

이 분야의 비교