Required text

Norman Ramsey and Sam Kamin (with Russ Cox), Programming Languages: An Interpreter-Based Approach, Draft manuscript, Spring 2002.
This book has not yet been published. Students will receive complimentary preprints.

This is the main text for the course. It is a revision (in progress) of Sam Kamin's 1990 textbook. Kamin did an excellent job of cramming a lot of good ideas into a few chapters. To make it possible, he extracted the essence of many different programming languages, and he has expressed those essences in a uniform, LISP-like syntax. Ramsey has updated the text with material on abstract syntax and operational semantics, and with help from Cox has modernized the software associated with the book.



The Ramsey book is the only required reading for the class. The following list was compiled by Norman Ramsey and is solely intended for students interested in getting a deeper understanding of some of the areas covered in class. None of these are required for the exams.


 

 


C

ML

Scheme

Prolog

CLU

The main source for CLU is the book: Barbara Liskov and John Guttag, Abstraction and Specification in Program Development , MIT-Press / McGraw-Hill, 1986. There is a portable implementation of CLU.

Formal methods for Program Correctness

Memory Management

Theory and Formal Methods

Programming-Language Design

Writing

Miscellaneous Techniques, etc

Literate Programming

General Algorithms

UNIX

Programming Style

Immutable Strings

Floating-Point Arithmetic

Multiple-precision Arithmetic

Game-playing programs

Embedded languages

Continuation-passing style