Course description

Lecture notes






CS 345 - Programming Languages (52470)

Fall 2010


This course is a survey of the fundamental concepts underlying modern programming languages. The emphasis is on identifying common syntactic and semantic language constructs and features, examining their manifestation in specific programming languages, and understanding the similarities and differences that arise in language implementations. The programming paradigms that will be studied include:
  • Procedural / imperative
  • Functional
  • Object-oriented
  • Concurrent
The representative language features will be drawn from ANSI C, C++, Java, Scheme, ML, and JavaScript.

Course materials

  • Concepts in Programming Languages by Mitchell - ISBN 0521780985.
  • C: A Reference Manual (5th edition) by Harbison and Steele - ISBN 013089592X.
  • Selected reading materials made available as the course progresses.


CS 310(H), CS 336(H), and M 408D or 408M.