Graduate Reading
Pick any one out of the following three:
-
We should understand fixedpoints better, because they are so central to our
understanding of programming. Please read Chapter 7 from the
book by Gifford,
Turbak and Reistad. Chapter 7 is currently not on the book's Web
site, so please use the local copy stored at
/pro/web/web/courses/cs173/2004/Reading/fixed-points.pdf
- We will combine two topics into one reading: a formal model for object-oriented languages like Java, and an actual proof of type soundness: here is the paper. You do not need to read the whole thing. Read Sections 1 and 2 and Appendix A. I do encourage you to read Section 3 and the part of Section 4 before 4.1these will help you appreciate how programming language research can improve the design of existing languages. As for Appendix A, you do not need to read all the low-level details, but you should understand the overall flow of the proof (most conventional type soundness proofs have the same structure).
- Let’s examine how programming language theory can help us make technical distinctions between programming languages that a formal languages course tells us have the same expressive power (namely, Turing-completeness). Here's the paper.
You must understand not only the high-level flow of the material but also (unless explicitly told otherwise) the low-level details, as befits a graduate student. You will be tested on your understanding in an oral exam of no longer than one hour. This exam must happen no later than Wednesday, December 8. It's your responsibility to schedule the exam. You must schedule it at least one week in advance.