CS 375, Compilers: Study Guide for Midterm Exam

Date: Friday, August 1, 2008, in class.

Reading:

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:

Vocabulary

accepting state address alignment alphabet
ambiguity ambiguous grammar arity
associativity augmented transition network (ATN) base address
basic type BNF bottom-up parsing
cascading errors Chomsky hierarchy
code generation collision concatenation
concatenation of languages context-free grammar data area
derivation deterministic finite automaton disambiguating rules
enumerated type equivalent grammars error production
finite automaton grammar handle
handle pruning hash function hash table
infix insertion intermediate language
language denoted by a grammar left-associative left recursion
left factoring left-sentential form leftmost derivation
lexeme lexical analysis lexical analyzer
nondeterministic finite automaton nonterminal object language
offset operand operator
optimization parse tree parsing
pass phase of compiler postfix
precedence precedence relations prefix
preorder production proper prefix
proper suffix recognizer recursive descent
reduce-reduce conflict reduction step regular expression
regular grammar regular language rehash
reserved word right-associative rightmost derivation
scalar type scanner search
semantics shift-reduce parser shift-reduce conflict
source language start symbol storage allocation
string subrange substring
suffix symbol table syntax
syntax analysis syntax-directed translation synthesized translation
terminal token top-down parsing
type type constructor union of languages
value variable vocabulary