CS 441 Final Exam Study Guide

To get top marks on your CS 441 final exam, you will need to understand all of the material that we discussed during the entire course. However, the exam will concentrate mainly on material from the second half of the course. There will be relatively few questions asking directly about material from the first half, but understanding of this material may still be vital to answering questions about the second half of the course.

Topics Covered during FIRST half

Topics Covered during SECOND half

(Note: Yes, we looked at rewriting semantics and lambda calculus during the first half of the course, but we saw them again during the second half, and they are indispensable tools for analyzing languages.)

Exercises

Following are some exercises selected from EOPL. Where exercises refer to specific interpreters in the book, you may prefer instead to do the exercise with an interpreter of the style we've been using in class.

    2.2.1    2.2.4    2.2.5    2.3.1    2.3.4    2.3.9    2.3.15
    3.1.2    3.1.4    3.6.1    3.6.2    3.6.3
    4.2.1-4  4.3.5    4.4.1    4.4.2    4.7.1    4.7.2
    5.1.5    5.3.1    5.4.2    5.4.4    5.5.8    5.5.9
    5.6.1    5.6.4    5.6.5    5.7.4-6  5.7.9
    6.1.2    6.2.1-4  6.3.2    6.5.1    6.5.2    6.5.5    (new or old chapter)
    7.1.1    7.1.8    7.1.9    7.2.1    7.2.3-5  7.3.3
    8.3.3    8.3.4    8.4.3-5  8.4.8    8.5.3    8.5.4    8.6.1-3
    9.1.1    9.1.2    9.2.1    9.2.3    9.2.6    9.3.2    9.3.3
    9.3.5    9.3.8    9.3.9    9.4.4
Since EOPL does not cover garbage collection, natural semantics, or module systems, your primary source of material for these topics is the lecture notes. In the draft chapter on type checking, you might want to try these exercises:
    13.1.1-3  13.1.6  13.2.1  13.2.2  13.3.1-4  13.4.1-3  13.4.9

Andrew Wright / NEC Research Institute / wright@research.nj.nec.com