Home

Course description

Lecture notes

Assignments

Reference

 

 

 

CS 345 - Programming Languages (55645)

Spring 2008

Lecture notes

  1. Introduction and course logistics.   [PDF]
  2. Programming paradigms.   [PDF]
  3. Brief history of programming languages.   [PDF]
  4. Lexical and syntactic analysis.   [PDF]
  5. Imperative programming.   [PDF]
  6. Introduction to ML.   [PDF] [OCaml examples]
  7. Functions: parameter passing mechanisms.   [PDF]
  8. Functions: scope, activation records.   [PDF]
  9. Buffer overflow and stack smashing.   [PDF]
  10. Types; overloading and polymorphism; type inference.   [PDF]
  11. Garbage collection.   [PDF]
  12. Exceptions.   [PDF]
  13. Code analysis tools.   [PDF]
  14. Concurrent programming.   [PDF]
  15. Lambda-calculus.   [PDF]
  16. Introduction to Scheme.   [PDF]
  17. Introduction to JavaScript.   [PDF]
  18. Security vulnerabilities in scripting languages.   [PDF]
  19. Logic programming.   [PDF]
  20. Modules and objects.   [PDF]
  21. Introduction to Python.   [PDF]
  22. Simula and Smalltalk.   [PDF]
  23. C++.   [PDF]