Class Notes
LINK TO THE MAPPING FROM VIDEO LECTURES TO THE CLASS NOTES PPT
- 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 below, Chapter 10, Textbook]
- Lecture 08 (PPT): Writing RPAL Programs [Ref: RPAL Notes below, Chapter 10, Textbook]
- Lecture 09 (PPT): Building AST's for RPAL programs [Ref: RPAL notes below, Chapter 10, Textbook]
- Lecture 10 (PPT): Standardizing RPAL AST's [Ref: RPAL notes below, Chapter 10, Textbook]
- Lecture 11 (PPT): Lambda Calculus [Ref: Language notes below]
- Lecture 12 (PPT): The CSE Machine [Ref: Language notes below]
- Lecture 13 (PPT): Optimizations for the CSE Machine [Ref: Language notes below]
- Lecture 14 (PPT): Recursion and Fixed-Point Theory [Ref: Language notes below]
- Lecture 15 (PPT): Name Binding and Object Lifetimes [Ref: Chapter 3, Textbook]
- Lecture 16 (PPT): Scope Rules [Ref: Chapter 3, Textbook]
- Lecture 17 (PPT): Attribute Grammars [Ref: Chapter 4, Textbook]
- Lecture 18 (PPT): An Attribute Grammar for Tiny [Ref: Language notes below]
- Lecture 19 (PPT): Extending Tiny [Ref: Language notes below]
- Lecture 20 (PPT): Expressions and Selection Statements [Ref: Chapter 6, Textbook]
- Lecture 21 (PPT): Iteration and Recursion [Ref: Chapter 6, Textbook]
- Lecture 22 (PPT): Type Systems and Structures [Ref: Chapter 7, Textbook]
- Lecture 23 (PPT): Arrays and Pointers [Ref: Chapter 7, Textbook]
- Lecture 24 (PPT): Subroutines [Ref: Chapter 8, Textbook]
- Lecture 25 (PPT): Subroutines (Part 2) [Ref: Chapter 8, Textbook]
- Lecture 26 (PPT): Denotational Semantics [Ref: Language notes below ]
- Lecture 27 (PPT): Extending Tiny [Ref: Language notes below]
- Lecture 28 (PPT): Logic Programming [Ref: Chapter 11, Textbook]
- Lecture 29 (PPT): Concurrent Programming [Ref: Chapter 12, Textbook]
- Lecture 30 (PPT): Object-Oriented Programming [Ref: Chapter 9, Textbook]
- Lecture 31 (PPT): Object-Oriented Programming (Part 2) [Ref: Chapter 9, Textbook]
- Lecture 32 (PPT): Course Summary
Language Notes
- Class notes on RPAL (PDF)
- Class notes on RPAL Lexer (PDF)
- Class notes on RPAL phase structure grammar (PDF)
- Class notes on subtree transformational grammar (PDF)
- Class notes on lambda calculus(PDF)
- Class notes on the CSE machine (PDF)
- Class notes on Recursion in RPAL (PDF)
- Class notes on Attribute Grammars (PDF)
- Class notes on Denotational Semantics (PDF)
- RPAL Interpreter (.tar.gz): Use 'gunzip' and 'tar' to unpack it; the README file gives instructions on installing it. It runs under UNIX and Linux.
- Windows RPAL Interpreter (.zip): Contains an executable, a .dll file, and the tests directory. Needs to be run in a command prompt window.