The Four Stages of a Program