컴파일러

제어 흐름 그래프에서 노드와 화살표가 나타내는 것의 조합으로 올바른 것은?

  1. A노드는 변수, 화살표는 변수에 값을 대입한 순서
  2. B노드는 기본 블록, 화살표는 블록 사이의 분기나 전이
  3. C노드는 함수, 화살표는 파일끼리의 읽어 들이기 관계
정답과 해설 보기

정답: B. 노드는 기본 블록, 화살표는 블록 사이의 분기나 전이

제어 흐름 그래프는 기본 블록을 노드로, 어떤 블록의 실행 뒤에 이어질 가능성이 있는 블록으로의 전이(조건 분기의 양쪽 목적지나 그대로 다음 블록으로 진행하는 흐름)를 화살표로 나타낸 그래프입니다. 뒤로 향하는 화살표에서 루프를 찾거나, 변수의 값이 어디에서 어디로 도달하는지를 분석하는 데 사용됩니다. 함수끼리의 호출 관계는 별도의 호출 그래프로 나타내며, 파일의 읽어 들이기 관계와는 무관합니다.

  • A. 변수와 대입 순서를 나타내는 그래프가 아닙니다.
  • B. 올바릅니다. 기본 블록과 그 사이의 전이를 나타냅니다.
  • C. 함수의 호출은 별도의 호출 그래프로 나타냅니다.
이 분야 연습하기 분야로 돌아가기

컴파일러의 다른 문제

  1. SSA 형식 중간 표현의 특징으로 올바른 것은?
  2. 위의 코드를 SSA 형식으로 만들면 if문 뒤에 「x3 = φ(x1, x2)」와 같은 식이 들어간다. 이 φ 함수의 역할로 올바른 것은?
  3. 컴파일러의 상수 폴딩의 예로 올바른 것은?
  4. 위의 코드에 상수 전파와 상수 폴딩을 반복해서 적용하면 최종적으로 어떤 코드가 되는가?
  5. 위의 코드에 공통 부분식 제거를 적용했을 때의 설명으로 올바른 것은?

이 분야의 비교