CSC 272
Software II

Principles of Programming Languages
Spring, 2008

This course meets from 10:50-12:05 TTh, in either Hagedorn 110 or Alumnae 113A (my office) or Alumnae 112 (the department computer lab) or somewhere else. Our main textbook will be Sebesta's Concepts of Programming Languages, 8th edition. In addition, we'll be doing some work based on Shriram Krishnamurthi's Programming Languages: Application and Interpretation, which is available on the Web for free.

A calendar of topics, week by week is here.


  1. Some time in February: add an "if0" construct to the language of PLAI chapter 4, and use it to define a recursive factorial function (or, if your language doesn't support multiplication, a "plus-factorial" function, f(n) = 1+2+3+...+n.)

  2. Some time in March: implement (in a familiar dialect of Scheme, with test cases) the language and interpreter for first-class functions (PLAI chapter 6), then add the mutation operators of PLAI chapter 13 (which requires changing the interpreter to take in not only an expression and an environment, but also a store).

  3. Some time in April (Think of these as warm-ups for the final exam):

I also taught this course, in various guises, in Spring 1995, Spring 1996, Spring 1997, and Spring 1998.

You are visitor number to this page since Jan. 13, 1997.
Last modified:
Stephen Bloch /