NPTEL : Principles of Compiler Design (Computer Science and Engineering)

Co-ordinators : Prof. Y.N. Srikanth


Lecture 1 - An Overview of a Compiler

Lecture 2 - Lexical Analysis - Part 1

Lecture 3 - Lexical Analysis - Part 2

Lecture 4 - Lexical Analysis - Part 3

Lecture 5 - Syntax Analysis: Context-free Grammars, Pushdown Automata and Parsing Part - 1

Lecture 6 - Syntax Analysis: Context-free Grammars, Pushdown Automata and Parsing Part - 2

Lecture 7 - Syntax Analysis: Context-free Grammars, Pushdown Automata and Parsing Part - 3

Lecture 8 - Syntax Analysis: Context-free Grammars, Pushdown Automata and Parsing Part - 4

Lecture 9 - Syntax Analysis: Context-free Grammars, Pushdown Automata and Parsing Part - 5

Lecture 10 - Syntax Analysis: Context-free Grammars, Pushdown Automata and Parsing Part - 6

Lecture 11 - Syntax Analysis: Context-free Grammars, Pushdown Automata and Parsing Part - 7

Lecture 12 - Semantic Analysis with Attribute Grammars Part - 1

Lecture 13 - Semantic Analysis with Attribute Grammars Part - 2

Lecture 14 - Semantic Analysis with Attribute Grammars Part - 3

Lecture 15 - Semantic Analysis with Attribute Grammars Part - 4

Lecture 16 - Semantic Analysis with Attribute Grammars Part - 5

Lecture 17 - Intermediate code generation Part - 1

Lecture 18 - Intermediate code generation Part - 2

Lecture 19 - Intermediate code generation Part - 3

Lecture 20 - Intermediate code generation Part - 4 (first half of lecture)

Lecture 21 - Run-time environments - 1 (second half of lecture)

Lecture 22 - Run-time environments - 2

Lecture 23 - Run-time environments - 3

Lecture 24 - Run-time environments - 4 (first half of lecture)

Lecture 25 - Control-Flow Graph and Local Optimizations - Part 1 (second half of lecture)

Lecture 26 - Control-Flow Graph and Local Optimizations - Part 2 (first half of lecture)

Lecture 27 - Machine code generation - 1 (second half of lecture)

Lecture 28 - Machine code generation - 2

Lecture 29 - Machine code generation - 3

Lecture 30 - Machine code generation - 4 (first half of lecture), Implementing object-oriented languages 1 (second half of lecture)

Lecture 31 - Implementing object-oriented languages 2 (first half of lecture)

Lecture 32 - Global register allocation - 1 (second half of lecture)

Lecture 33 - Global register allocation - 2

Lecture 34 - Global register allocation - 3

Lecture 35 - Introduction to Machine-Independent Optimizations - 1

Lecture 36 - Introduction to Machine-Independent Optimizations - 2

Lecture 37 - Introduction to Machine-Independent Optimizations - 3

Lecture 38 - Introduction to Machine-Independent Optimizations - 4

Lecture 39 - Introduction to Machine-Independent Optimizations - 5

Lecture 40 - Introduction to Machine-Independent Optimizations - 6

Lecture 41 - Introduction to Machine-Independent Optimizations - 7 (first half of lecture)

Lecture 42 - Instruction Scheduling and Software Pipelining - 1 (second half of lecture)

Lecture 43 - Instruction Scheduling and Software Pipelining - 2

Lecture 44 - Instruction Scheduling and Software Pipelining - 3 (first part of lecture)

Lecture 45 - Automatic parallelization - 1 (second half of lecture)

Lecture 46 - Automatic parallelization - 2