CS 375, Compilers: Study Guide for Final Exam

Date: Thursday, May 8, 2014, 2-5 PM in PAI 4.42

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 activation record actual parameter
adjacency matrix aliasing antisymmetric
automatic programming available backpatching
basic block bit vector Boolean matrix
BSS storage busy cache prefetch
call by name call by reference call by value
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
display 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
partial evaluation partial order
partition peephole optimization polymorphic function
postamble postincrement preamble
predictive parsing prologue quadruples
reduction in strength referenced reflexive transitive closure
relation relocatable code relocation
restore registers return address reverse Polish
RISC row-major order save registers
selector send a message sound type system
spill code stack frame stack pointer
static static analysis static type checking
strong typing structural equivalence superclass
superscalar synthesized attribute three-address code
three-address machine transitive closure triples
two-address code two-address machine type coercion
type hierarchy type signature union type
unreachable code volatile register