COL728: Compiler Design
Sem I, 2022-23
Home
–
Administrivia
–
References
–
Labs
–
Lecture Videos
News
Course feedback:
Lectures
,
Practicals
.
Picture taken during the last class meeting
.
31 July 2020
: Course webpage goes online.
Lecture schedule
Week
Dates
Material
1
3 Aug - 5 Aug 2022
Videos:
Evolution of Compilers
Compoilation is partial evaluation of the Interpreter
Introduction to Optimizations
Outline of a Compiler
Introduction to Lexical Analysis
Notes:
Introduction to Interpreters, Compilers, and Programming Languages
Lexical Analysis Examples and Regular Languages
2
8 Aug - 12 Aug 2022
Videos:
Regular Expressions
Lexical Analysis High Level Algorithm
DFA and NFA
Software Implementation of DFA and NFA
Regular Expression to NFA
Context Free Grammar
CFG Examples
Notes:
Formal Languages and Lexical Specifications
Context free languages and Derivations, Error handling, ASTs
3
15 Aug - 19 Aug 2022
Videos:
Derivation Tree and Order
Ambiguity in CFG
Error Handling
Abstract Syntax Tree
Recrusive Descent Parsing Introduction
Notes:
Context free languages and Derivations, Error handling, ASTs
Recursive Descent Parsing
4
22 Aug - 26 Aug 2022
Videos:
Recursive Descnt Parsing Algorithm
Left Recursion
Predictive Parsing
LL1 Parsing
Constructing First Sets
Notes:
Recursive Descent Parsing (contd.)
Bottom up Parsing
5
29 Aug - 2 Sep 2022
Videos:
Constructing Follow Sets
Construct LL1 Parsing Table
Introduction to Bottom-up Parsing
Shift Reduce Parsing
Handles
Viable Prefixes
Structure of Viable Prefixes
NFA for recognizing viable prefixes
LR0 Algorithm
SLR Implementation
SLR Examples
Notes:
Bottom up Parsing (contd.)
6
5 Sep - 9 Sep 2022
Videos:
Module 34 : Semantic Analysis, Introduction to Scope
Module 35 : Semantic Analysis as Recursive Descent over AST
Module 36 : Types
Module 37 : Type Formalism
Module 38 : Soundness of a Typesystem
Module 39 : More Type Rules
Module 40 : Type Environments
Module 41 : Type Environment and Symbol Table
Module 42 : Typing Methods
Module 43 : Typechecker Implementation
Module 44 : Static vs Dynamic Types
Module 45 : Recovering from Type Errors
Notes:
Semantic Analysis
7
12 Sep - 16 Sep 2022
Videos:
Module 46 : Runtime Organization
Notes:
Runtime Organization
Introduction to Code Generation
8
19 Sep - 23 Sep 2022
Notes:
Code Generation
Code Generation for Objects
9
26 Sep - 28 Sep 2022
Minor exam
10
29 Sep - 7 Oct 2022
Semester break during 2 Oct - 5 Oct
Language Semantics (contd.)
11
10 Oct - 14 Oct 2022
Intermediate Language
Optimization Overview
Local Optimization
12
17 Oct - 21 Oct 2022
Dataflow analysis
Global constant propagation
13
24 Oct - 28 Oct 2022
Global constant propagation (contd.)
Register allocation
14
31 Oct - 4 Nov 2022
Lazy Code Motion
Phase Ordering Problem
Loop Transformations
Affine loop Transformations
14
7 Nov - 11 Nov 2022
More DFA Examples, Register Allocation, Register Spilling
Lecture Videos Playlist (Embedded)