[PLT logo] Comp 311: Suggested Readings


Supplementary Reading

All of the essential material in this course is covered in the online lecture notes and the references provided below. If you would like to see a different presentation of most of material in this course, we suggest the following text:

  • Friedman, Wand, Haynes: Essentials of Programming Languages, Second Edition (MIT Press, 2001)
    You should take a look at the following two new chapters, which the authors prepared for the second edition:
  • Parameter Passing
  • Types and Type Inference
  • If you are new to Scheme and its pragmatics of programming, consult the Comp 210 web site and the Comp 210 textbook How to Design Programs..

    If you are writing the assignments in Java and want guidance on the OO design principles that we expect you to follow, see Notes on Object-Oriented Design (also available in postscript)

    OnLine References

  • Evaluation rules for functional Scheme
  • Sample call-by-value evaluation using explicit substitution
  • Sample call-by-name evaluation using explicit substitution
  • Sample call-by-value/lazy-cons evaluation using explicit substitution
  • Another sample call-by-value/lazy-cons evaluation using explicit substitution
  • Sample call-by-name/lazy-cons evaluation using explicit substitution
  • Another sample call-by-name/lazy-cons evaluation using explicit substitution
  • Lecture Notes on Types I
  • Lecture Notes on Types II
  • Scheme code from Class Lectures
  • Type Inference Exercises (included selected solutions)
  • Notes on Scheme Macros by Jeremy Brown
  • Uniprocessor Garbage Collection Techniques by Paul Wilson
  • Space Efficient Conservative Garbage Collection by Hans Boehm
  • Han Boehm's Conservative GC webpage