CS 421: Programming Languages and Compilers

Project for four-unit grad students

Four-hour graduate students will be asked to read and present three research papers in the course of the semester. These presentations will be required, but not graded; the course grades for the four-hour graduate students will be calculated exactly as for the three-hour graduate students.

The presentations will be done as a group, with each student giving approximately a formal presentation on the assigned paper of approximately 20-30 minutes. All four-hour students will attend the paper presentations, which should last about two hours. I will contact the four-hour students about scheduling the first of these session toward the end of February.

The papers will be in three general areas: parsing, code generation, and languages. In each case, you will have a choice of several papers from which to choose. (It is okay if more than one student picks the same paper. The presentations should be prepared and given separately.) These will mainly be classic or tutorial papers, i.e. papers that are self-contained.

The first group of papers is on parsing. Please choose one of the following papers to present:

The second group of papers is on optimization and code generation. Please choose one of the following papers to present, or suggest another paper in this area:

The third group of papers is on theoretical aspects of programming languages. Because these are theory papers, they are rather more difficult to read than the previous ones; as always, I'm happy to talk to you about them.

I've divided the list into two parts, with the second part containing a few papers that are classics, but are more difficult than the ones in the first part; only choose from the second group if you really enjoy this kind of stuff. Also, unlike the previous presentations, I want to have each of you present a different paper, so get your bids in early.

This group is the more technical one, but each paper is considered among the very best papers ever written on programming languages.