Computer Science 376

Programming Languages

Course Description

Following an introduction to functional programming using the Scheme programming language, students build a series of interpreters supporting imperative, declarative, functional and nondeterministic programming languages, and then finish the course by building a virtual machine and a compiler powerful enough to compile the previous interpreters into code which can be run on the virtual machine.


Chris Parrish
Office: Woods Laboratories 120

Location and Time

Tuesday, Thursday, 11:00 a.m. - 12:15 p.m.
Final Examination: Tuesday, 9 May 2000, 9 a.m.
Woods Laboratories 119

Course Topics and Schedule

CprS 376 Schedule, Fall 2001


Structure and Interpretation of Computer Programs, Second Edition,
by Abelson, Sussman, and Sussman; MIT Press and McGraw-Hill, 1996

Web Enhancements

The publisher's web pages maintained by the MIT Press in support of our textbook contain electronic copies of the text's programs and other resources which can be downloaded onto your computer.

Programming Environment

The machines in WL119 run the linux operating system. For those not already familiar with this environment, we will spend a few moments familiarizing ourselves with linux and the emacs editor at the beginning of the first class, but the enterprising student will be well-served by running through this unix and emacs tutorial before the first class. For our classwork, we will use Kent Dybvig's Petite Chez Scheme, which is freely available for a number of different platforms.


For Further Information

Course-related resources