4. 복합 연산이 가능한 계산기
C언어를 공부했으므로 1+1, 2*8과 같은 단순한 연산이 가능한 계산기를 만들어본 경험이 있으리라 생각한다. 여기서는 복합 연산이 가능한 계산기를 다룬다. 예를 들어 우리가 프로그래밍을 하면서 변수에 값을 대입할 때 우리는 다음과 같은 복잡한 식을 사용할 수 있다.
value = is_prime(num) ? a + b * c : d / (e - g) % h;
프로그래밍을 어느 정도 공부하고 나면 이러한 연산이 당연히 가능하겠거니 하고 넘어가기 쉽지만, 실제로 이 과정은 생각보다 복잡하고 이해하는 데 노력을 요한다. 여기서는 복합 연산을 이해하고 실제 복합적 연산을 분석하는 계산기를 작성한다. 순서는 다음과 같다.
1. 1+1, 2-4, 6*7, 8/9와 같은 사칙 연산에 대해 동작하는 계산기를 만든다.
2. 식을 넘기면 이를 분석하여 어떤 순서로 연산해야 하는지 출력하는 프로그램을 만든다.
3. 연산 순서를 알고 있고 연산 결과를 알고 있으므로, 이를 이용해 연산한다.