Final

Quiz 4

Topics

Code Generation

ABIs

  • Calling conventions
  • Callee saved/caller saved registers
  • Stack alignment

Compiler Toolchains

  • Assemblers
  • Linkers
  • Loaders

Control Flow Graphs

  • Basic Blocks
  • Edge Types
  • Dominators
  • Static Single Assignment (SSA) Form

Dataflow

  • Dead Code Elimination
  • Constant Folding
  • Constant Propagation

Final Code Optimization

  • Peephole optimization
  • Interference graphs
  • Register allocation
  • Instruction selection
  • Instruction strength reduction

Heap Management

  • Allocating Heap Memory
  • Garbage Collection
    • Reference Counting
    • Mark and Sweep

+Enough 3AC and X64 to answer questions about the above topics

Quiz 3

Topics

Reference Pages (will be included with the quiz):
Refererence pages

IR Concepts

  • Purposes of IRs
  • Translating IRs
  • Specific IR examples
    • ASTs
    • 3AC

Runtime environment concepts

  • What runtime environment are
  • What runtime environments are used for
  • Examples of runtime environments

Architecture details

  • Binary encoding
    • x64 instructions
    • x64 data representation
    • hand-coded x64 programs

Allocation schemes

  • Static allocation
  • Stack allocation / Activation records

Assembly code

  • x64 programming
  • Implementating source-language constructs
  • The System V ABI

Quiz 2

Topics

  • Bison
  • LL(1) Parsing
    • Using an LL(1) Parser
    • Building an LL(1) Parser
  • LR Parsing
    • Using an LR Parser
    • Building an SLR Parser
      • Stack Items
      • Closure Sets
      • GoTo Sets
  • Grammar transformations
    • Left-Recursion Elimination
    • Left Factoring
  • FIRST Sets
  • FOLLOW Sets
  • Top-Down SDT / SDT for LL(1) Grammars
  • ASTs / Building ASTs from Parse Trees
  • Name Analysis
  • Dynamic Scope / Static Scope
  • Shadowing
  • Overriding
  • Type Analysis / Type Checking

Study Versions

fall2020:(blank) fall2019:(blank)

Quiz 1

Topics

  • Phases of the compiler
  • Regex to NFA-with-epsilon-transitions
  • NFA epsilon elimination
  • epsilon-closure sets
  • Rabin-Scott Powerset Construction (NFA to DFA)
  • Regular Expressions
  • DFAs
  • State transition tables
  • Tokenizers
  • Flex patterns
  • Context-Free Grammars
  • Ambiguous Grammars
  • Fixing Precendence in CF Grammars
  • Fixing Associativity in CF Grammars
  • Backus Normal Form Notation
  • Parse Trees
  • Syntax-Directed Definitions
  • Syntax-Directed Translation