TAKEAWAY 5.7 타입의 바이너리 표현은 모두 관측 가능하다.
이러한 바이너리 표현 역시 일종의 모델이다. 컴퓨터의 메모리나 디스크 또는 영구 저장 장치에 값이 저장되는 방식을 구체적으로 지정하지 않는다는 점에서 추상 표현(abstract representation)이라고 볼 수 있다. 참고로 저장 방식을 구체적으로 지정하는 표현을 오브젝트 표현(object representation)이라 한다. 그런데 바이너리 표현과 달리, 메인 메모리에 있는 오브젝트의 값을 해킹하거나 플랫폼 모델이 상이한 컴퓨터끼리 통신하지 않는 한 오브젝트 표현에 대해 크게 신경 쓸 일은 없다. 12.1절에서 오브젝트 표현도 관측할 수 있다는 것을 배울 것이다. 단, 그 오브젝트가 메모리에 저장되어 있고 주소도 알고 있을 때만 그렇다.
정리하면 모든 연산은 값과 타입과 프로그램에 지정된 바이너리 표현에 의해 결정된다. 프로그램 텍스트는 추상 상태 기계(abstract state machine)C를 표현하며, 이에 따라 프로그램은 한 상태에서 다른 상태로 전이된다. 이러한 전이(transition)는 오직 값, 타입, 바이너리 표현에 따라 결정된다.
TAKEAWAY 5.8 as-if 규칙: 프로그램은 추상 상태 기계를 따르는 것처럼 실행된다.