COMP 144 Programming Language Concepts

Spring 2004


Lectures

These slides should be used as an study guide of the materials in the textbook. Refer to the textbook for more detailed explanations. The content of the numerous articles and other books referred in the lectures will not be part of the exams, except for what I included in the lectures.

For instructors and readers:This set of lecture notes is mainly based on Scott's book, a large number of on-line articles and a few other books, that are mentioned in the correponding slides, and original material developed for the class by Felix Hernandez and D. Stotts.


We have covered...

  1. Introduction (ppt) (pdf) (Scott's Genealogy)
  2. Compilation and Interpretation (ppt) (pdf)
  3. JVM and Java byte code (html)
  4. Binding Time and Storage Allocation (ppt) (pdf)
  5. Introduction to Scripting Languages with Perl (ppt) (pdf)
  6. More Scripting with Perl (ppt) (pdf)
  7. And Yet More Scripting with Perl (ppt) (pdf)
  8. Lexical Analysis (ppt) (pdf)
  9. Scope and Symbol Table (ppt) (pdf)
  10. Introduction to Data Types (ppt) (pdf)
  11. Type Checking and Data Type Implementation (ppt) (pdf)
  12. Overview of ML
  13. Introduction to Functional Programming (ppt) (pdf)
  14. ML runtime, Deep/Shallow Access, Referential Transparency (ppt) (pdf)
  15. Control Abstraction (ppt) (pdf)
  16. Exceptions and Parameter Passing (ppt) (pdf)
  17. Variables, Structured Flow, Sequencing and Selection (ppt) (pdf)
  18. Iteration and Recursion (ppt) (pdf)
  19. Prolog Examples
  20. Logic Programming with Prolog: Resolution, Unification, Backtracking (ppt) (pdf)
  21. Prolog's Lists, Negation, and Imperative Control Flow (ppt) (pdf)
  22. OO Languages: Scopes, Lifetimes, Garbage Collection (ppt) (pdf)
  23. OO Languages: Dynamic Method Binding, Inheritance (ppt) (pdf)
  24. JVM: The Java Virtual Machine (ppt) (pdf)

Yet to come...

  1. Syntax Specification (pdf) (ppt)
  2. Syntax Analysis (pdf) (ppt)
  3. Expression Evaluation (pdf) (ppt)
  4. Building a Runnable Program (pdf) (ppt)
  5. The Java Virtual Machine (pdf) (ppt)
  6. Code Generation and Linking (pdf) (ppt)
  7. Code Optimization (pdf) (ppt)
  8. In-line Expansion and Local Optimization (pdf) (ppt)
  9. Global Optimization, Loop Improvement and Profiling (pdf) (ppt)
  10. Beyond Sequential Program (pdf) (ppt)
  11. Implementing Concurrency (pdf) (ppt)
  12. Case Study: C# and .NET (pdf) (ppt)



From previous classes...

  1. Introduction to Scripting Languages with Python (pdf) (ppt)
  2. Python's Built-in Types and Basic Statements (pdf) (ppt)
  3. Python's Files, Modules, Classes, and Exceptions (pdf) (ppt)
  4. Semantic Analysis (pdf) (ppt)
  5. Functions, Types and Data Structures in Haskell (pdf) (ppt)
  6. Lists and Higher-Order Functions in Haskell (pdf) (ppt)
  7. Functional Programming in Python (pdf) (ppt)
  8. Introduction with Logic Programming with Prolog (pdf) (ppt)
  9. Prolog's Resolution and Programming Techniques (pdf) (ppt)
  10. Prolog's Lists, Negation and Imperative Control Flow (pdf) (ppt)
    April Fool's day: Unlambda (pdf) (ppt)
  11. Object-Oriented Programming (pdf) (ppt)
  12. Object Lifetime and Garbage Collection (pdf) (ppt)
  13. Dynamic Binding (pdf) (ppt)
  14. Run-Time Type Identification and Introspection (pdf) (ppt)