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.