Lecture 1 - Introduction - Part 1, Programming languages and compilers
Lecture 2 - Introduction - Part 2, Language translators
Lecture 3 - Introduction - Part 3, Phases of a compiler
Lecture 4 - Introduction - Part 4, Static vs Dynamic contexts,Parameter passing
Lecture 5 - Lexing - Part 1, Terminology, Regex, flex tool- Part 1
Lecture 6 - Lexing - Part 2, Lexical errors, Input buffering
Lecture 7 - flex tool- Part 2
Lecture 8 - Lexing - Part 3, Lookahead, KMP string matching
Lecture 9 - Lexing - Part 4, Regex to DFA conversion - Part 1
Lecture 10 - Lexing - Part 5, Regex to DFA conversion - Part 2, Prasing - Part 1
Lecture 11 - Parsing - Part 2, CFG, Parse tree, Precedence, Ambiguity
Lecture 12 - flex tool - Part 3
Lecture 13 - Parsing - Part 3, Sentinel forms, Error recovery, if-else ambiguity
Lecture 14 - Parsing - Part 4, Left recursion, Recursive descent parsing
Lecture 15 - Parsing - Part 5, First and Follow, Predicitive parsing table
Lecture 16 - Parsing - Part 6, Predictive parsing table, LL(1) grammars
Lecture 17 - Discussions and doubts clarification - Part 1
Lecture 18 - Parsing - Part 6, Bottom-up, Shift-reduce parsing, SLR parsing
Lecture 19 - Parsing - Part 6, LR(0) automaton, SLR parsing using automaton
Lecture 20 - Parsing - Part 7, SLR(1) parsing table, SLR(1) parsing algorithm
Lecture 21 - Parsing - Part 8, Viable prefixes, LR(1) parsing, LR(1) automaton
Lecture 22 - Parsing - Part 9, LALR parsing, SDT- Part 1, attributes
Lecture 23 - Syntax Directed Translation - Part 2, S- and L-attributed SDD
Lecture 24 - Syntax Directed Translation - Part 3, L-attributed SDD, Applications
Lecture 25 - Syntax Directed Translation - Part 4, Actions within productions
Lecture 26 - Discussions and doubts clarification - Part 2
Lecture 27 - Quiz-1 discussion, SDT - Part 5, Code generation for while loop
Lecture 28 - Intermdiate Code Generation - Part 1, Syntax trees and DAGs
Lecture 29 - Intermdiate Code Generation - Part 2, Three-address code
Lecture 30 - Discussions and doubts clarification Part 3
Lecture 31 - Intermdiate Code Generation - Part 3, Static single assignment
Lecture 32 - Intermdiate Code Generation - Part 4, IR for type expressions
Lecture 33 - Intermdiate Code Generation - Part 4, IR for array expressions
Lecture 34 - Intermdiate Code Generation - Part 4, IR for boolean expressions
Lecture 35 - Intermdiate Code Generation - Part 4, IR for break, continue, switch
Lecture 36 - Code Generator - Part 1, Introduction, IR and target code
Lecture 37 - Code Generator - Part 2, Instruction selection, ordering
Lecture 38 - Code Generator - Part 2, Basic blocks and CFG
Lecture 39 - x86 assembly code
Lecture 40 - Code optimizer - Part 1, Local optimizations within a basic block
Lecture 41 - Code optimizer - Part 2, Array references, Peephole optimization
Lecture 42 - Discussions and doubts clarification - Part 4
Lecture 43 - Code optimizer - Part 3, Register allocation, Liveness
Lecture 44 - Code optimizer - Part 4, Register allocation as graph coloring
Lecture 45 - Discussions and doubts clarification - Part 5
Lecture 46 - Code optimizer - Part 5, Data flow analysis, Reaching definitions
Lecture 47 - Discussions and doubts clarification - Part 6
Lecture 48 - Code optimizer - Part 6, DFA for reaching definitions,Live variables