
Module 1: Lexical analysis and Syntax Analysis




Lecture 1a. Introduction to Compiler Design
12:00




Lecture 1b. Token Name, Token Attribute, and Lexeme
21:00




Lecture 1c. Recognition of Tokens and Maximal Munch
30:00




Lecture 1 Annotated Notes Lexical Analysis
(66 pages)




Practice Questions on Lexical Analysis
90:00




Annotated Notes Practice Questions on Lexical Analysis
(46 pages)




True False Question on Lexical Analysis
10:00




Lecture 2a. Introduction to Syntax Analysis and Ambiguous grammars
18:00




Lecture 2b. Elimination of Ambiguity Manually  Example 1 ETF Grammar
16:00




Lecture 2c. Elimination of Ambiguity Manually  Example 2 Dangling IfElse Grammar
26:00




GATE 1996 Question Homework




Lecture 2d. Elimination of Ambiguity Manually  Example 3 Balance Parentheses  And Ambiguity Summary
13:00




Lecture 2 Annotated Notes Dealing with Ambiguity and Ambiguous Grammars
(38 pages)




Lecture 3a. Left Recursion and Left Factoring
48:00




Lecture 3b. One more example on Left Factoring
2:00




Annotated Notes Lecture 3  Left Recursion and Left Factoring
(33 pages)




Lecture 4a. Introduction to Parsing  Type of Parsers
10:00




Lecture 4b. Types of Top Down Parsers
14:00




Lecture 4c. Recursive Descent Parser
27:00




Annotated Notes Lecture 4 Parsing Introduction and Recursive Descent Parser
(19 pages)




Lecture 5. Questions on Recursive Descent Parsers
76:00




Lecture 5  On Youtube




Annotated Notes Practice Questions on Recursive Descent
(64 pages)




Lecture 6a. Computing First
44:00




Lecture 6b. Computing Follow
47:00




Lecture 7a. Predictive Parsers
61:00




Lecture 7b. Implementing LL(1)
24:00




Lecture 6a annotated Notes
(18 pages)




Lecture 6b Annotated notes
(22 pages)




Lecture 7a Annotated Notes
(28 pages)




Lecture 7b Annotated Notes
(9 pages)




Forty Five Questions on First, Follow, LL(1), Ambiguity, etc
113:00




Annotated Notes Practice Questions on LL(1)
(132 pages)



BottomUp Parsing




Lecture 8a: Handles in BottomUp Parsing  GATE 2005 PYQ




Lecture 8b: Questions on Handle and Working of Bottomup parsers
132:00




Annotated Notes Lecture 8b: Questions on Handle and Working of Bottomup parsers
(89 pages)




Lecture 8b On Youtube




Lecture 9a. LR(0) and SLR(1) Parsing Table Examples
51:00




Lecture 9b. More examples on LR(0) and SLR(1) Grammars
20:00




Annotated Notes For lecture 9
(34 pages)




Lecture 10. Really Understanding LR(0) Automata  ReRun of DFA  Viable Prefixes  Bottom up Parsing Algorithm
118:00




Annotated Notes Really Understanding LR(0) Automata and Viable Prefixes
(82 pages)




Lecture 11a. More Questions on LR(0) and SLR(1)
32:00




Lecture 11b. Condition of Grammar being SLR(1)
3:00




Lecture 11c. Relation between LL(1) LR(0) and SLR(1)
24:00




Lecture 11d. One more Example of LR(0) SLR(1)
6:00




Annotated Notes Lecture 11. LR(0) and SLR(1)
(17 pages)




12a. Limitations of SLR(1) Parser
21:00




12b. Idea behind LR(1) Parsers
7:00




12c. Example on LR(1) Parsing
23:00




12d. Example on LR(1) and LALR(1)
15:00




Annotated Notes Lecture 12 LR(1) and LALR(1)
(21 pages)




Lecture 13 aExample on LR(1) and LALR(1)
19:00




Lecture 13 bOne More Example on LR(1) and LALR(1)
21:00




Lecture 13 c Tiny LR(2) grammar
7:00




Annotated Notes Lecture 13 More About LR(1) and LALR(1)
(11 pages)




Lecture 14a Questions on LALR(1) and CLR(1)




Lecture 14b Questions on LALR(1) and CLR(1)




Annotated Notes Lecture 14 Questions on LR(1) and LALR(1)
(78 pages)



Syntax Directed Definitions and Translation




Lecture 15: Syntax Directed Definition and Translation
52:00




Lecture 16 PYQs on Syntax Directed Definition and Translation
59:00




Lecture 17 Inherited and Synthesize attributes with Top down and Bottomup parsers
29:00




SDT Annotated Notes
(78 pages)



Intermediate Code & Code Optimization




Lecture 1  Computer Languages  Machine Language Vs Assembly Language




Annotated Notes  Lecture 1  Machine Vs Assembly Language
(82 pages)




Lecture 2  Broad Overview of Phases of Compiler




Annotated Notes  Lecture 2  Broad Overview of Compiler Phases
(138 pages)




Lecture 3A  Intermediate Representations




Annotated Notes  Lecture 3A  Intermediate Representations
(84 pages)




Lecture 3B  Three Address Code




Notes for Lecture 3B  Three Address Code




Slides  Lecture 3B  Three Address Code
(47 pages)




Lecture 3C  Static Single Assignment Form SSA




Annotated Notes  Lecture 3C  Static Single Assignment Form SSA
(134 pages)




Lecture 3D  Control Flow Graph CFG




Annotated Notes  Lecture 3D  Control Flow Graph CFG
(116 pages)




Lecture 4  Code Optimization  Introduction
27:00




Annotated Notes  Lecture 4  Code Optimization  Introduction
(42 pages)




Lecture 5A  Dead Code Elimination & Liveness Analysis  Part 1
13:00




Lecture 5B  Liveness Analysis & Dead Code Elimination
151:00




Annotated Notes  Lecture 5A,5B  Liveness Analysis & Dead Code Elimination
(179 pages)




Lecture 5C  Practice Questions  Liveness Analysis
137:00




Lecture 6  Available Expression Analysis, Common Subexpression Elimination, Copy Propagation
141:00



Students' Hand Written Notes




Notes by Quantum City (AIR 107, GATE CS 2024, Shreyas Rathod)  Compiler Design Notes
(37 pages)

