Introduction to compiling techniques including parsing algorithms, semantic processing and optimization. In-depth study of compiler backend design for high-performance architectures. Topics include control-flow and data-flow analysis, optimization, instruction scheduling, and register allocation.