CS 375, Compilers: Study Guide for Midterm Exam

Date: Thursday, March 14, 2019, in class.


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. Class lecture notes.

Material covered in class:


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 CKY parser Chomsky hierarchy
code generation collision concatenation
context-free grammar data area declaration
derivation deterministic finite automaton disambiguating rules
enumerated type equivalent grammars error production
finite automaton 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
significand NaN nondeterministic finite automaton
nonterminal object language observability
offset operand operator
optimization overloading padding
parse tree parsing pass
postfix precedence prefix
preorder production recognizer
record recursive descent reduce-reduce conflict
reduction step regular expression regular grammar
regular language rehash reserved word
right-associative scalar type semantics
shift-reduce parser shift-reduce conflict SNaN
start symbol, S storage allocation
string subrange substring
suffix symbol table syntax
syntax-directed translation synthesized translation terminal
token top-down parsing type
type constructor type lattice