CS 334
Principles of Programming Languages
Lecture and Reading Schedule

Spring, 1997


In readings, "L" stands for the text, Ullman is the ML text, Switzer is the Eiffel text, and "ASU" stands for the Compiler text by Aho, Sethi, and Ullman. The number following a letter is the chapter to be read.


  1. Preview, History of Programming Languages L: 1, 2
  2. Functional Programming & ML L: 10, Ullman
  3. More ML Ullman
  4. Features of functional languages L: 10, 5.7
  5. Syntax L:4
  6. Compilers and Interpreters, variables ASU: 2, L: 5.1-5.3
  7. Bindings & scope, Types L: 5.4-5.6, 6.1-6.2
  8. Type Constructors L: 6.3
  9. Type Systems L: 6.4-6.7
  10. Run-time structure L: 7.4 (not 7.4.2), 7.5
  11. More run-time structure, environment-based interpreters
  12. Dynamic memory management, Commands L: 10.8, 7.1-7.3
  13. Parameters L: 7.4.2
  14. Abstract data types L: 8 except 8.5 & 8.8
  15. Polymorphism & OOL's L: 8.5, 9
  16. Object-oriented languages & Eiffel Switzer
  17. More Eiffel Switzer
  18. Java and evaluating OOL's
  19. Semantics L: 12.3-12.5
  20. Logic Programming & Prolog L: 11
  21. More Prolog
  22. Concurrency L: 13
  23. More concurrency
  24. Language selection & Design, Summary L: 3
Please at least skim the reading for a class before the lecture. We will be able to have much more interesting classes if you know something about the material as we discuss it.

Back to:

  • CS 334 home page
  • Kim Bruce's home page
  • CS Department home page
  • kim@cs.williams.edu