CS 164 Spring 2023
Programming Languages and Compilers
Lectures: Monday, Wednesday 10:30-12:00 pm in Soda 306 (Berkeley Academic Guide page)
Instructor: Prof. Koushik Sen
Office Hours: Fri 1-2 pm @ SODA 735
Lecture Slides
LEC1: Welcome & Introduction (slides)
LEC2-3: Lexical Analysis & Finite Automata (slides)
LEC4-5: Introduction to Parsing (slides)
LEC6: Top-Down Parsing and LL Parsing (slides)
LEC7-8: Bottom-Up Parsing and LR Parsing (slides)
LEC9-11: Type Checking (slides)
LEC12: Runtime Organization (slides)
LEC13-14: Simple Code Generation (slides)
LEC15: Garbage Collection (slides)
LEC16-17: Operational Semantics (slides)
LEC18: IRs and Local Optimization (slides)
LEC19-20: Global Optimization (slides)
LEC21: Dataflow Analysis (slides)
LEC22: Register Allocation (slides)
LEC23: Exceptions (slides)
LEC24: Final Review (Paper 1/Paper2) (slides 1/slides 2) (solns 1/solns 2)
Assignments
Discussions
DIS1: Lexical Analysis, Regex, FSA (solutions)
DIS2: NFA2DFA, Efficient Lexing, CFG Parsing (solutions)
DIS3: Left Recursion, Left Factoring, LL(1) Parsing (solutions) (Manish's Slides)
DIS4: LR Parsing and LR(1) Conflicts (solutions)
DIS5: Semantic Analysis and Type Checking (solutions)
DIS6: Code Generation and Temporaries (solutions)
DIS7: Operational Semantics (solutions)
DIS8: CFG, Local Optimization (solutions)
DIS9: Global Optimization, Operational Semantics Practice (solutions)
DIS10: Liveness, Register Allocation (solutions)