CSc 453 (Fall 2007): Final exam: structure and syllabus
1. Structure
The final exam will consist of roughly 5-8 problems. It will be a
comprehensive exam, in that all of the material covered during the semester
will potentially be examined. About a third of the final exam will consist
of pre-midterm material; the remainder will be post-midterm material.
You will be expected to know the material at the level of detail discussed
in class (see below). You will be expected to know material that has been
discussed in class, as well as material that you can reasonably be expected
to be familiar with as part of your project. You will not be examined on
material that has not been discussed in class nor been a substantial
component of your project. In addition, it is assumed that you are familiar
with material from courses that are prerequisites to this class.
The points total for the problems on the exam will add up to roughly 120,
which not-so-coincidentally is the duration of the exam (in minutes). This
means that for each problem, the points assigned to that problem can be
taken as a rough guide to how much time you should be spending on it. This
may help you with your test-taking strategy.
2. Syllabus
Topics listed below refer to the
lecture notes from the class.
- Background [all slides];
- Lexical Analysis [all slides except for slides 23-26, which deal with
implementing finite automata];
- Parsing [all slides except for slides 17-18 on removing
operator ambiguity by transforming the grammar];
- Semantic Analysis [all slides except for slide 20 (notions of type
equivalence) and 26 (operator overloading)]
- Runtime Environments [slides 1-15];
- Intermediate Code Generation [all slides]
- Final Code Generation [slides 1-10]
Comment: I don't expect you to know the details of the optimizations
discussed, since these were covered only superficially in
class. I do expect you to know what code optimization is,
as well as some of the basic approaches to code optimization
(at the level of detail in the lecture notes).
- Interpreters and Interpretation [all slides]
Comment: I don't expect you to know the details of JIT compilers, since
this was covered only superficially in class. I do expect
you to know what JIT compilation is, as well as some of the
issues that have to be addressed for JIT compilation
(at the level of detail in the lecture notes).
- Linkers [slides 1-20 and 24-28 of "Linking and Loading" lecture notes]
Comment: I don't expect you to memorize the details of the structure
of ELF files and headers. I do expect you to to know what
kinds of information is contained in binaries, and how this
information is used by linkers to carry out linking
(at the level of detail in the lecture notes).