CS 375, Compilers: Study Guide for Midterm Exam

Date: Thursday, March 7, 2024, at class time, on Canvas.

Reading:

Class lecture notes through page 157. Optionally, Aho, Lam, Sethi, and Ullman, Compilers: Principles, Techniques, and Tools, Chapters 1; 3 through 3.5; 4 through p. 220, 4.5, 4.6.3, 4.9; 5.1, 5.3; 6 through 6.5, 2.7.

Material covered in class:

Vocabulary

abstract syntax tree (AST) accepting state address alignment
alphabet ambiguity ambiguous grammar
arity associativity augmented transition network (ATN)
AVL tree base address basic type
BNF bottom-up parsing cascading errors
cast character class Chomsky hierarchy
CKY chart parser code generation collision
compile-time concatenation context-free grammar
controllability data area declaration
derivation deterministic finite automaton disambiguating rules
dynamic enumerated type equivalent grammars
error production finite automaton fix
fixed-point float floating-point
grammar hash function hash table
hash with buckets infix insertion
intermediate language Kleene closure language denoted by a grammar
left-associative left recursion left factoring
leftmost derivation lexeme lexer
lexical analysis mnemonic NaN
nondeterministic finite automaton nonterminal object language
observability offset operand
operator optimization padding
parse tree parsing pass
postfix precedence prefix
preorder production recognizer
record recursive descent reduce
reduce-reduce conflict reduction step regular expression
regular grammar regular language rehash
reserved word right-associative scalar type
scope semantics shift
shift-reduce parser shift-reduce conflict significand
SNaN sound sound type system
start symbol S static storage allocation
string subrange substring
suffix symbol table syntax
syntax-directed translation synthesized translation table lookup
terminal token top-down parsing
top-down filtering type type constructor
type lattice unary variable
variable declaration variant record white space
yacc