컴파일러
코드 생성 단계의 하나인 명령 선택(인스트럭션 셀렉션)에 대한 설명으로 올바른 것은 무엇인가?
- A중간 표현의 연산을 대상 CPU가 가진 명령 중 어느 것으로 구현할지 정한다
- B실행할 프로세스를 OS가 어떤 순서로 고를지 정한다
- C소스 코드 안에서 주석으로 쓰인 명령을 골라낸다
정답과 해설 보기
정답: A. 중간 표현의 연산을 대상 CPU가 가진 명령 중 어느 것으로 구현할지 정한다
명령 선택은 중간 표현의 연산 나열을 대상 CPU의 구체적인 명령에 대응시키는 처리입니다. 같은 계산이라도 CPU에 따라 사용할 수 있는 명령이 다르며, 예를 들어 a * b + c를 CPU에 곱셈-덧셈 연산(FMA) 명령이 있으면 한 명령으로, 없으면 곱셈과 덧셈의 두 명령으로 구현합니다. 메모리 주소 계산을 주소 지정 모드로 합치는 등 CPU의 명령을 잘 활용할수록 빠른 코드가 됩니다. OS의 스케줄링이나 주석 처리와는 관계가 없습니다.
- A. 올바릅니다. 중간 표현의 연산을 CPU의 명령에 대응시킵니다.
- B. 프로세스의 순서는 OS의 스케줄러가 정합니다.
- C. 주석은 어휘 분석에서 제거됩니다.