컴파일러

컴파일러의 의미 분석에서 발견되는 오류의 예로 가장 적절한 것은?

  1. A정수를 넣는 변수에 타입이 맞지 않는 값을 대입하고 있다
  2. B문장 끝의 세미콜론을 빠뜨렸다
  3. C프로그램을 실행해 보니 도중에 0으로 나누는 계산이 발생했다
정답과 해설 보기

정답: A. 정수를 넣는 변수에 타입이 맞지 않는 값을 대입하고 있다

의미 분석에서는 문법적으로는 올바르게 작성된 프로그램에 대해 타입이 맞는지, 선언되지 않은 이름을 사용하지 않았는지, 함수에 전달하는 인수의 개수가 올바른지 등을 검사합니다. 타입이 맞지 않는 대입은 이 단계에서 발견되는 대표적인 오류입니다. 세미콜론을 빠뜨린 것은 문법 오류이므로 구문 분석에서 발견됩니다. 0으로 나누는 것은 실행해 봐야 비로소 발생하는 실행 시 오류로, 일반적으로 컴파일러는 찾아내지 못합니다.

  • A. 올바릅니다. 타입 불일치는 의미 분석에서 발견됩니다.
  • B. 세미콜론을 빠뜨린 것은 구문 분석에서 발견되는 문법 오류입니다.
  • C. 0으로 나누는 것은 실행 시에 발생하는 오류입니다.
이 분야 연습하기 분야로 돌아가기

컴파일러의 다른 문제

  1. 추상 구문 트리(AST)의 특징으로 올바른 것은?
  2. 컴파일러 내부에서 소스 언어에도 CPU에도 의존하지 않는 중간 표현(IR)을 사용하는 주된 이점은?
  3. 기본 블록에 대한 설명으로 올바른 것은?
  4. 제어 흐름 그래프에서 노드와 화살표가 나타내는 것의 조합으로 올바른 것은?
  5. SSA 형식 중간 표현의 특징으로 올바른 것은?

이 분야의 비교