CPSC 326: Organization of Programming Languages

Spring 2025

Course Information

Course Resources


Weekly Schedule
Week Topic HW
1 (1/15) Course overview (slides, notes)  
1 (1/17) MyPL intro (slides, notes) HW-0 (set up)
2 (1/20) No Class: MLK Jr Holiday  
2 (1/22) Compilation and interpretation (slides, notes)  
2 (1/24) Lexical Analysis (slides, notes) HW-1 (lexer)
3 (1/27) Lexical Analysis (cont) (slides, notes)  
3 (1/29) Formal Grammars (slides, notes)  
3 (1/31) Derivations and LL(k) Grammars (slides, notes)  
4 (2/3) LL(k) and Recursive Descent (slides, notes) HW-2 (parser)
4 (2/5) Recursive Descent Parsing (slides, notes)  
4 (2/7) Recursive Descent Examples (slides, notes)  
5 (2/10) AST Overview (slides, notes)  
5 (2/12) AST Traversal (slides, notes) HW-3 (ast)
5 (2/14) AST Traversal (slides, notes, AST classes)  
6 (2/17) No Class: President's Day Holiday  
6 (2/19) EXAM 1  
6 (2/21) Associativity and Precedence (slides, notes)  
7 (2/24) Semantic Analysis Terminology (slides, notes)  
7 (2/26) Semantic Analysis Symbol Table (slides, notes) HW-4 (typing)
7 (2/28) Semantic Analysis Basics (slides, notes)  
8 (3/3) Semantic Analysis Wrap Up (slides, notes, type rules)  
8 (3/5) Wrap up Semantic Checker (slides, notes)  
8 (3/7) Intro to VM and Instruction Set Basics (slides, notes) Proj P1 due
(3/10-3/14) No Class: Spring Break  
9 (3/17) Instruction Set Cont (slides, notes)  
9 (3/19) VM Architecture (slides, notes) HW-5 (vm)
9 (3/21) VM Wrap Up (slides, notes)  
10 (3/24) IR Code Generation (slides, notes)  
10 (3/26) IR Code Generation (slides, notes)  
10 (3/28) IR Code Generation (slides, notes) HW-6 (gen)
11 (3/31) PL Paradigms, Turing Machines (slides, notes) Proj P2 due
11 (4/2) Lambda Calculus (slides, notes)  
11 (4/4) Lambda Calculus (slides, notes)  
12 (4/7) EXAM 2  
12 (4/9) FP: OCaml Basics (slides, notes)  
12 (4/11) FP: OCaml Types, Function Basics (slides, notes)  
13 (4/14) FP: More Functions, Lists (slides, notes) HW-7 (ocaml)
13 (4/16) FP: Tuples, Pattern Matching (slides, notes)  
13 (4/18) No Class: Good Friday  
14 (4/21) No Class: Easter Holiday  
14 (4/23) Pattern Matching (slides, notes)  
14 (4/25) Algebraic Types (slides notes) HW-8 (ocaml+)
15 (4/28) OCaml Wrap Up (slides, notes)  
15 (4/30) ASP/Clingo Crash Course (slides, notes)  
15 (5/2) ASP and Wrap Up (slides, notes)  
16 FINAL EXAM (Sect 1: 1-3 Tues, May 6; Sect 2: 1-3 Thur, May 8)