What you need to know in ECE573 exams
You are expected to know the following terms and concepts. "Know" means, be
able to explain the item, give examples, recognize it in a given context, and
apply it to a given problem.
Understanding the material on the course slides will get you up to a 90% score
(meaning a high B grade). If you can answer background questions to this
material, (which is covered in the text book and handouts but may not have been
discussed in detail in class) you will achieve a solid A.
Open Book Policy
All exams are open textbook and notes. However it is strongly recommended that
you page through the textbook as little as possible during the exam. Use the
textbook only in "emergencies".
Material for midterm exam, Th, Oct20 2005 (in class)
Material up to instruction scheduling. This includes the
prerequisite material, covered in the ECE468 (or equivalent) course.
Block
diagram of a compiler. including input and output, functionality,
implementation issues, generator tools.
1-pass compilers, multi-pass compilers, tradeoffs.
Terminology: syntax, semantics; the attributes static, dynamic,
context-free/sensitive; attribute grammar, denotational semantics;
Scanning: regular expresions, finite automata (DFA/NFA); transition, goto,
action table; scanner generation methods; multi-character lookahead.
Grammar, Parsing: resursive descent, BNF, LL(x), LR(x), stack-based
parsing, parse tree, syntax tree, first and follow set, predicting
productions, left/right-most derivation, bottom-up/top-down parsers, parse
tables, parser generation methods, left-recursion, non-LL grammar, shift-reduce
parser, configuration set, CFSM, goto/action tables, basics on LR(k) and SLR
parsers.
Semantic processing: semantic annotations of grammar, action symbols, use
in recursive-descent and stack-based parsing; semantic records, use in in
recursive-descent and stack-based parsing; basics on symbol tables; basic
issues of runtime storage organization, processing declarations, expressions
and data structure references; processing of if, loop, case, control structures
(semantic actions and record keeping); parameter types,
activation frame, register save issues of subroutine calls.
Local Optimization: temporary management, avoiding redundant computation;
register tracking and allocation; impact of aliasing; peephole optimizations;
generating code from trees and dags.
Instruction scheduling, from Cooper/Torczon book/handout.
Final Exam, Thu, Dec 15, 2005 1:00-3:00pm, Room EE 115
The final exam is comprehensive. It includes all material covered in class plus
the prerequisite material, as necessary to understand the class material.
Paper handouts need to be understood to the extent that they provide background
material to the course slides.