I don't quite follow the last sentence of the first paragraph (don't worry, I've read and editted beyond there). I guess you mean that compilation should be a staged process, progressing as a sequence of transformations on the program.