Programming Languages and Compilers
Lectures: Monday, Wednesday 2:00-3:30 pm in Soda 306 (Berkeley Academic Guide page)
Instructor: Prof. Koushik Sen
LEC 1: Welcome & Introduction (slides)
LEC 2-3: Lexical Analysis & Finite Automata (slides)
LEC 4: Introduction to Parsing (slides)
LEC 5-6: Top-Down Parsing (slides)
LEC 7-8: Bottom-Up Parsing, LR Parsing, Parser Generators (slides)
LEC 9-11: Semantic Analysis, Typechecking in ChocoPy (slides)
LEC 12-14: Runtime Organization, Code Generation (slides)
LEC 15: Operational Semantics (slides)
LEC 16: Garbage Collection (slides)
LEC 17: Intermediate Code, Local Optimizations (slides)
LEC 18: Global Optimizations (slides)
LEC 19: Data Flow Analysis (slides)
LEC 20: Register Allocation (slides)
LEC 21: Exceptions (slides)
LEC 22: Symbolic and Concolic Execution (slides)
LEC 23: KISS Sorcar: A Stupidly-simple General-purpose and Software Engineering AI Assistant (slides) (paper)
DIS1: Lexical Analysis, Regex, FSA (solutions)
DIS2: NFA2DFA, Efficient Lexing, CFG, Left Recursion/Factoring/LL(1) Parsing (solutions)
DIS3: First and Follow Sets, LL(1) Parsing (solutions)
DIS4: LR(1) Parsing (solutions)
DIS5: Semantic Analysis and Type Checking (solutions)
DIS6: Code Generation (solutions)
DIS7: Operational Semantics (solutions)
DIS8: More Practice on Operational Semantics (solutions)
DIS9: Garbage Collection (solutions)
WA1: Lexical Analysis, Regex, FA (solutions) – Due Thursday February 12 at 11:59 PM
WA2: LL and LR Parser (solutions) – Due Thursday February 26 at 11:59 PM
WA3: Semantic Analysis (solutions) – Due Tuesday March 19 at 11:59 PM
WA4: Code Generation (solutions) – Due Tuesday April 21 at 11:59 PM
WA5: Operational Semantics & Garbage Collection (solutions) – Due Friday May 1 at 11:59 PM
WA6: Optimization, Register Allocation & Dataflow Analysis (solutions) – For Practice. Not Graded.
Midterm 1: Midterm 1 Spring 2023 (solutions)
Midterm 2: Midterm 2 Fall 2019 (solutions)
Final: Final Spring 2023 (solutions)