컴파일러
중간 표현의 하나인 3-주소 코드의 특징으로 올바른 것은?
- A1개의 명령에 연산이나 괄호를 얼마든지 포함할 수 있다
- B1개의 명령은 최대 3개의 주소와 1개의 연산으로 이루어진다
- C주소로 반드시 메모리의 물리 주소를 쓴다
정답과 해설 보기
정답: B. 1개의 명령은 최대 3개의 주소와 1개의 연산으로 이루어진다
3-주소 코드에서는 복잡한 식을 연산이 하나뿐인 단순한 명령의 나열로 분해합니다. 예를 들어 x = (a + b) * c는 t1 = a + b, x = t1 * c의 2개가 되며, 1개의 명령에 등장하는 것은 결과와 2개의 재료, 즉 최대 3개의 주소입니다. 중간 값에는 임시 이름(t1 등)을 붙입니다. 이렇게 하면 계산 순서가 분명해져 최적화나 CPU 명령으로의 변환이 쉬워집니다. 주소는 변수나 임시 이름이며 물리 주소가 아닙니다.
- A. 1개의 명령에는 연산이 하나뿐입니다.
- B. 올바릅니다. 최대 3개의 주소와 1개의 연산으로 이루어진 명령의 나열입니다.
- C. 주소는 변수나 임시 이름이며 물리 주소가 아닙니다.