5.1 추상 상태 기계
C 프로그램은 값을 처리하는 기계라고 볼 수 있다. 프로그램에서 사용하는 변수는 실행 시점마다 특정한 값을 가지는데, 이 값은 복합 표현식의 최종 표현식으로 이어지는 중간값일 수도 있다. 다음과 같은 간단한 예제를 살펴보자.
double x = 5.0; double y = 3.0; ... x = (x * 1.5) - y; printf("x is \%g\n", x);
이 코드는 x와 y라는 두 변수를 사용하며 초깃값이 각각 5.0과 3.0이다. 이후 x 값을 계산하는 문장을 보면 다음과 같은 부분 표현식이 나온다.
(x * 1.5)
이 시점에서 x 값은 5.0이므로 식을 계산하면 7.5라는 결과가 나온다.
(5.0 * 1.5)
이어서 - y 부분을 계산할 때 y는 3.0이므로 다음과 같이 4.5란 결과가 나온다.
7.5 - 3.0
따라서 셋째 줄의 실행 결과는 다음과 같다.
x = 4.5;
여기서부터 x의 평가 결과가 4.5이므로 이후 문장은 다음과 같이 실행된다.
printf("x is \%g\n", 4.5);
이 문장은 터미널에 텍스트 한 줄을 출력한다.