This page links to lecture notes.

I have tried to make these notes as accurate as possible, but there may be mistakes. Please send me an email if you find a mistake.

This page links to lecture notes.

I have tried to make these notes as accurate as possible, but there may be mistakes. Please send me an email if you find a mistake.

Documents

- Lecture 1: Preliminaries, Introduction to Scheme
- Lecture 2: Scheme Data Types and Forms
- Lecture 3: Scheme control, variables, recursion
- Lecture 4: Syntax, Regular Languages and Regular Expressions
- Lecture 5: Finite Automata, Lexical Analysis
- Lecture 6: Designing Finite Automata, Eliminating Nondeterminism
- Lecture 7: Context-Free Languages
- Lecture 8: Parsing and Ambiguity
- Lecture 9: Recursive-Descent Parsing
- Lecture 10: Turing Machines
- Lecture 11: Decidability and the Halting Problem
- Lecture 12: Decidability of Regular Languages
- Lecture 13: Recursively Specified Data
- Lecture 14: Deriving Recursive Programs
- Lecture 15: Data Abstraction
- Lecture 16: Concrete vs. Abstract Syntax
- Lecture 17: Interpreters
- Lecture 18: Procedures
- Lecture 19: Scoping and Binding of Variables
- Lecture 20: Effects
- Lecture 21: Implicit References
- Lecture 22: Parameter-passing mechanisms
- Lecture 23: Continuation-Passing Interpreter
- Lecture 24: Exceptions