Computer Science 342 studies functional programming, object-oriented programming, and the ideas behind modern programming languages. To make ideas clear and precise, they are demonstrated in code, for example, by building interpreters.
This material reflects the Fall 1999 offering of the course, which is a change from previous offerings.
In the distant past, we used MacLennan's book Principles of Programming Languages (Holt, Reinhart and Winston, 1987), but in Spring 1991 we switched to Samuel N. Kamin's book Programming Languages: An Interpreter-Based Approach (Addison-Wesley Publishing Co., Inc., 1990) in order to focus more on programming aspects. Then in Fall 1995 we switched to the book by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes, Essentials of Programming Languages (MIT Press and McGraw-Hill, 1992).
However, to focus once again on programming, we have changed to Harold Abelson and Gerald Jay Sussman's book, Structure and Interpretation of Computer Programs, Second Edition (MIT Press and McGraw-Hill, 1996).