Concepts covered in CS 480/580 - Regular Expressions and Lexical Analysers how tokens are defined using RE, translated into a FA and combined to form a lexical analyzer Top Down Parsing when there is a choice must decide based on the next symbol only which alternative to take. recursive descent is a top down technique that May be method of choice for building parsers by hand Bottom Up Parsing what the set of states represents, how it is related to the grammar, how the set of states FA is used, how this permits us to examine all possibilites in parallel, deciding upon which productions appear in the parse tree AFTER we have seen them, not before Symbol Tables what they are, what problems they solve, and how they work what type checking is and how it is done. Run Time Representation the compile time/run time distinction. What is known at compile time vs what is known at run time. Addressing - how one gets to values at run time. Including local variables, parameters (value and reference), globals, pointers, up-level addressing, Intermediate Representation what it is and how it is used. Dags. Control Flow constructs and how they get translated into lower level statements. short circuit evaluation Optimizations what is the purpose of optimization? various types of optimizations. Code Generation stack style code generation vs register style, tradeoffs