CS 375, Compilers: Study Guide for Final Exam

Date: Saturday, May 4, 2024, 8:00 - 10:00 AM on Canvas.

Material on the Midterm Study Guide is included on the final.

Reading:

Aho, Lam, Sethi, and Ullman, Compilers: Principles, Techniques, and Tools, Chapters 7 through 9.

Material covered in class:

Vocabulary:

absolute code actual parameter adjacency matrix
aliasing antisymmetric automatic programming
available backpatching backward reference
basic block bit vector Boolean matrix
boxed number BSS storage busy
cache prefetch call by name call by reference
call by value callee-saved caller-saved
canonical form Cartesian product class
code motion column-major order computed
condition code register constant folding control flow analysis
dangling reference data flow analysis dead code
defined definition-use chain dereference a pointer
dominator dynamic dynamic memory
dynamic type checking epilogue formal parameter
forward reference fragmentation garbage
garbage collection global optimization graph
graph coloring heap implicit parameter
induction variable inherit inherited attribute
inlining instance instance variable
interpreted code interval keyword
killed lexical scoping link editor
live variable loader local optimization
location counter loop unrolling macro
mark-and-sweep materialization memory hierarchy
memory leak message method
multiple inheritance name equivalence nonvolatile register
object object-oriented programming overloading
Pareto distribution partial evaluation partial order
partition peephole optimization polymorphic function
postamble postincrement preamble
prologue quadruples reduction in strength
referenced reflexive transitive closure register windows
relation relocatable code relocation
restore registers return address reverse Polish
RISC row-major order save registers
selector send a message shadowing
sound type system spill code stack frame
stack pointer static static analysis
static type checking strong typing structural equivalence
superclass superscalar synthesized attribute
tag transitive closure triples
type coercion type hierarchy type signature
union type unreachable code volatile register