Programming Languages and Compilers
Lectures: Monday, Wednesday 2:00-3:30 pm in Soda 306 (Berkeley Academic Guide page)
Instructor: Prof. Koushik Sen
WEEKLY OVERVIEW
Monday, December 16 - Friday, December 20
LEC 1: Welcome & Introduction (slides)
LEC 2-3: Lexical Analysis & Finite Automata (slides)
LEC 4-5: 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: Typechecking in ChocoPy, Runtime Organization (slides)
LEC 13-14: Code Generation (slides)
LEC 15: Garbage Collection (slides)
LEC 16: Operational Semantics (slides)
LEC 17-18: Intermediate Languages, Local Optimization (slides)
LEC 19-20: Global Optimization (slides)
LEC 21: General Data-Flow Analysis (slides)
LEC 22: Register Allocation (slides)
LEC 23: Exceptions (slides)
DIS1: Lexical Analysis, Regex, FSA (solutions)
DIS2: NFA2DFA, Efficient Lexing, CFG, Left Recursion/Factoring/LL(1) Parsing (solutions) (Albert's Slides)
DIS3: First and Follow Sets, LL(1) Parsing, LR(1) Parsing (solutions) (Albert's Slides)
DIS4: Semantic Analysis and Type Checking (solutions) (Albert's Slides)
DIS5: Past Exam Review
DIS6: Code Generation (Albert's Slides) (solutions)
DIS7: Garbage Collection (Albert's Slides) (solutions)
DIS8: Operational Semantics (Albert's Slides) (solutions)
DIS9: CFG, Optimization (Albert's Slides) (solutions)
DIS10: Data-Flow Analysis (solutions)
DIS11: Data-Flow Analysis and Register Allocation (solutions)
WA1: Lexical Analysis, Regex, FA (solutions) β Due Thursday September 26 at 11:59 PM
WA2: LL and LR Parser (solutions) β Due Thursday October 3 at 11:59 PM
WA3: Semantic Analysis (solutions) β Due Tuesday October 15 at 11:59 PM
WA4: Code Generation (solutions) - Due Monday November 4 at 11:59 PM
WA5: Operational Semantics, Garbage Collection (solutions) - Due Monday November 18 at 11:59 pm
WA6: Local and Global Optimization (solutions) - Due Monday December 2 at 11:59 pm
PA1: ChocoPy ParserΒ β Due Tuesday October 8 at 11:59 PM
PA2: ChocoPy Semantic Analysis β Due Friday, November 1 at 11:59 PM
PA3: ChocoPy Code Generation β Due Friday, December 6 at 11:59 PM
You may only use slip hours on the PA3 submission itself. You cannot use slip hours on the other assignments (student submitted benchmarks, checkpoint, and leaderboard).Β
PA3 Hard Deadline: Sunday, December 15 at 11:59 PM
PA3 Student Submitted Benchmarks β Due Friday, November 22 at 11:59 PM
PA3 Checkpoint β Due Sunday, November 24 at 11:59 PM
PA3 Optimization / Leaderboard (extra credit) β Due Friday, December 6 at 11:59 PM