CS 640 -- Advanced Compilers

      Spring 2013

      Dr. Elizabeth White
      office: Nguyen Engineering, Rm. 5315 (993-1586)
      email: white@gmu.edu

      Topics

      • Code Analysis techniques (dataflow, control flow, SSA, interprocedural)
      • Optimization (scalar, dependence-based)
      • Code Generation (register allocation, scheduling)
      • Optimization in high-performance environments

      Course Resources

      • Engineering a Compiler, Cooper & Torczon, Morgan-Kaufmann, 2003. OR
      • "Compilers: Principles, Techniques, and Tools", A. Aho, R. Sethi M. Lam and J. Ullman (also known as the "dragon" book).
      • Papers (to be determined later)

      Related Resources

      Some of the material from this course is also covered in:
      • Building an Optimizing Compiler, Robert Morgan, Digital Press 1998.

      Course Requirements

      • Exams: Midterm Exam (20%), Final Exam (20%)
        Both exams (midterm and final) will have an in-class portion and a take-home portion. The honor code will be in effect for both portions of the exam, including the take home portion
      • Homeworks (20%)
        Homeworks may be done in groups or individually.
      • Projects (40%)
        There will be two or three programming assignments all requiring you to implement algorithms we are studying. These projects may assume standard front end skills you would acquire in a class like CS 540. Programming assignments are to be individual efforts.
      You are expected to abide by the honor code for work done in this class. All work is to be your individual effort unless I tell you otherwise.