Program Analysis and Optimizations

CS243

Stanford School of Engineering


Thumbnail

Description

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.

Prerequisites

CS103 and CS107

Topics include

  • Program optimizations
  • Data flow analysis
  • Instruction scheduling
  • Register allocation
  • Data locality and parallelism
  • Interprocedural analysis
  • Garbage collection

Note on Course Availability

The course schedule is displayed for planning purposes – courses can be modified, changed, or cancelled. Course availability will be considered finalized on the first day of open enrollment. For quarterly enrollment dates, please refer to our graduate certificate homepage.