더북(TheBook)

5.1 추상 상태 기계

C 프로그램은 값을 처리하는 기계라고 볼 수 있다. 프로그램에서 사용하는 변수는 실행 시점마다 특정한 값을 가지는데, 이 값은 복합 표현식의 최종 표현식으로 이어지는 중간값일 수도 있다. 다음과 같은 간단한 예제를 살펴보자.

double x = 5.0;
double y = 3.0;
...
x = (x * 1.5) - y;
printf("x is \%g\n", x);

이 코드는 xy라는 두 변수를 사용하며 초깃값이 각각 5.03.0이다. 이후 x 값을 계산하는 문장을 보면 다음과 같은 부분 표현식이 나온다.

(x * 1.5)

이 시점에서 x 값은 5.0이므로 식을 계산하면 7.5라는 결과가 나온다.

(5.0 * 1.5)

이어서 - y 부분을 계산할 때 y3.0이므로 다음과 같이 4.5란 결과가 나온다.

7.5 - 3.0

따라서 셋째 줄의 실행 결과는 다음과 같다.

x = 4.5;

여기서부터 x의 평가 결과가 4.5이므로 이후 문장은 다음과 같이 실행된다.

printf("x is \%g\n", 4.5);

이 문장은 터미널에 텍스트 한 줄을 출력한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.