This course teaches program analysis techniques used in compilers and software development tools to improve productivity, reliability, and security. Emphasis on the methodology of applying mathematical abstractions such as graphs, fixpoint computations, binary decision diagrams in writing complex software, using compilers as an example.
- Monica Lam Professor of Computer Science
- Program optimizations
- Data flow analysis
- Instruction scheduling
- Register allocation
- Data locality and parallelism
- Interprocedural analysis
- Garbage collection
3.0 - 4.0
Students enrolling under the non degree option are required to take the course for 4.0 units.