Course Websites
CS 426 - Compiler Construction
Last offered Fall 2021
Official Description
Related Faculty
Course Director
Documents
Text(s)
1. Engineering a Compiler by Cooper and Torczon, published by Morgan Kaufman.
2. Compilers - Principles, Techniques, and Tools (2nd Edition) by Aho, Lam, Sethi, and Ullman, published by Addison-Wesley.
Learning Goals
Choose the appropriate compiler internal representation for different kinds of compiler tasks. (1, 2, 6)
Translate a source-level language into a low-level compiler internal representation. (1, 2, 6)
Analyze the major control flow properties of a program, including control flow graphs, dominators, natural loops, and reducible vs. irreducible flow graphs. (1, 2, 6)
Identify the classical optimizations that could be applicable to a given piece of code to improve its performance. (1, 2, 6)
Construct and solve the dataflow equations for a given dataflow problem. (1, 2, 6)
Identify the dataflow problem(s) required for a given dataflow optimization. (1, 2, 6)
Describe the algorithms and design tradeoffs for back-end ("native") code generation for a modern superscalar processor (1, 2, 6)
Implement the major phases of a simple compiler, including scanning, parsing, intermediate code generation, and a few program optimizations. (1, 2, 3, 6)
Topic List
Introduction to compilers and program optimization
Compiler internal representations.
Run-time environments supporting compiler-generated code.
Translation from source-level programming languages to low-level intermediate code
Control flow graphs, dominators, natural loops, and reducibility
Terminology, classification, correctness and profitability of program optimizations
Classical local and peephole program optimizations
Classical global program optimizations
Dataflow analysis and the iterative dataflow algorithm
Back-end ("native") code generation
Global register allocation
Required, Elective, or Selected Elective
Elective.
| Title | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
|---|---|---|---|---|---|---|---|---|
| Compiler Construction | N3 | 43355 | LCD | 3 | 0930 - 1045 | M W | 1304 Siebel Center for Comp Sci | Vikram Adve |
| Compiler Construction | N4 | 43356 | LCD | 4 | 0930 - 1045 | M W | 1304 Siebel Center for Comp Sci | Vikram Adve |