Intermediate Code Generation
Bridge the front end and the back end. First see the run-time environment a program needs — activation trees, the control stack, run-time storage organization, and the static/stack/heap allocation strategies. Then learn the intermediate representations a compiler emits: three-address code and its quadruple, triple, and indirect-triple implementations, plus Polish (postfix/prefix) notation.