Class Notes
- Lecture 01 (PPT): Introduction and Paradigms [Ref: Chapter 1, Textbook]
- Lecture 02 (PPT): Overview of Compilation [Ref: Chapter 1, Textbook]
- Lecture 03 (PPT): Parsing [Ref: Chapter 2, Textbook]
- Lecture 04 (PPT): LL(1) Parsing [Ref: Chapter 2, Textbook]
- Lecture 05 (PPT): Tree Generation [Ref: Chapter 2, Textbook]
- Lecture 06 (PPT): Abstract Syntax Tree Generation [Ref: Chapter 2, Textbook]
- Lecture 07 (PPT): The RPAL Language [Ref: RPAL Notes on the class website, Chapter 10, Textbook]
- Lecture 08 (PPT): Writing RPAL Programs [Ref: RPAL Notes on the class website, Chapter 10, Textbook]
- Lecture 09 (PPT): Building AST's for RPAL programs [Ref: RPAL notes on the class website, Chapter 10, Textbook]
- Lecture 10 (PPT): Standardizing RPAL AST's [Ref: RPAL notes on the class website, Chapter 10, Textbook]
- Lecture 11 (PPT): Lambda Calculus [Ref: Language notes on the class website]
- Lecture 12 (PPT): The CSE Machine [Ref: Language notes on the class website]
- Lecture 13 (PPT): Optimizations for the CSE Machine [Ref: Language notes on the class website]
- Lecture 14 (PPT): Recursion and Fixed-Point Theory [Ref: Language notes on the class website]
- Lecture 15 (PPT): Name Binding and Object Lifetimes
- Lecture 16 (PPT): Scope Rules
- Lecture 17 (PPT): Attribute Grammars
- Lecture 18 (PPT): An Attribute Grammar for Tiny
- Lecture 19 (PPT): Extending Tiny
- Lecture 20 (PPT): Expressions and Selection Statements
- Lecture 21 (PPT): Iteration and Recursion
- Lecture 22 (PPT): Type Systems and Structures
- Lecture 23 (PPT): Arrays and Pointers
- Lecture 24 (PPT): Subroutines
- Lecture 25 (PPT): Subroutines (Part 2)
- Lecture 26 (PPT): Denotational Semantics
- Lecture 27 (PPT): Extending Tiny
- Lecture 28 (PPT): Logic Programming
- Lecture 29 (PPT): Concurrent Programming
- Lecture 30 (PPT): Object-Oriented Programming
- Lecture 31 (PPT): Object-Oriented Programming (Part 2)
- Lecture 32 (PPT): Course Summary
Mapping of Lectures to Class Notes and Language Notes
Lecture PPTs SubjectLecture 1 PPT 1 Intro and Paradigms
Lecture 2 PPT 2 Overview of Compilation
Lecture 3 PPT 3 Parsing
Lecture 4 PPT 4-6 LL(1) Parsing
Lecture 5 PPT 7 The RPAL Language Class notes on RPAL (PDF)
Lecture 6 PPT 7 Slide 14 RPAL Continued
Lecture 7 RPAL Prog - PPT 9 RPAL, AST
Lecture 8 PPTs 9-11 ASTs for RPAL
Lecture 9 PPT 11 - PPT 12 Lambda Calculus Class notes on lambda calculus(PDF) - CSE Machine Class notes on the CSE machine (PDF)
Lecture 10 PPT 11 - PPT 12 Lambda Calculus - CSE Machine
Lecture 11 PPT 13 - PPT 14 CSE Machine Optimizations
Lecture 12 PPT 15 Name Binding and Object Lifetimes
Lecture 13 PPT 16 Scope Rules
Lecture 14 PPT 16 - PPT 17 Scope Rules - Attribute Grammars
Lecture 15 PPT 18 Attribute Grammar for Tiny Class notes on Attribute Grammars (PDF)
Lecture 16 PPT 19 Extending Tiny
Lecture 17 PPT 19 Extending Tiny
Lecture 18 PPT 20 Expressions and Selection Statements
Lecture 19 PPT 21 Iteration and Recursion Class notes on Recursion in RPAL (PDF)
Lecture 20 PPT 22 Up to slide 50 Type Systems and Structures
Lecture 21 PPT 22 Slide 51-end Type Systems and Structures
Lecture 22 PPT 23 Slide 24-end Arrays and Pointers
Lecture 23 PPT 23 Slide 24-end Arrays and Pointers
Lecture 24 PPT 24 Subroutines Part 1
Lecture 25 PPT 25 to Slide 30 Subroutines Part 2
Lecture 26 PPT 25 Slide 30 - end Generics and Exceptions Lecture 27 PPT 26 Denotational Semantics Class notes on Denotational Semantics (PDF)
Lecture 28 Missing - PPT 27 Extending Tiny
Lecture 29 PPT 28 Logic Programming
Lecture 30 PPT 29 Concurrent Programming
Lecture 31 PPT 30 - Start 31 OOP
Lecture 32 End PPT 31 through 32 OOP and Summary