CD Syllabus
| Topic | Subtopics / What to Cover |
|---|---|
| Introduction to Compiler | Compiler vs Interpreter ⭐ Phases of compiler ⭐ |
| Structure of Compiler | Front end ⭐ Back end ⭐ |
| Lexical Analysis | Tokens ⭐ Lexemes ⭐ Patterns ⭐ |
| Lexical Analyzer | Input buffering ⭐ Symbol table ⭐ |
| Regular Expressions | RE basics ⭐ RE to DFA/NFA ⭐ |
| Finite Automata | DFA ⭐ NFA ⭐ DFA vs NFA ⭐ |
| Syntax Analysis | Role of parser ⭐ Types of parsing ⭐ |
| Context-Free Grammar | Grammar rules ⭐ Derivations ⭐ |
| Parse Trees | Parse tree ⭐ Ambiguity ⭐ |
| Top-Down Parsing | Recursive descent ⭐ LL(1) parsing ⭐ |
| Bottom-Up Parsing | Shift-reduce ⭐ LR parsing ⭐ |
| Operator Precedence | Operator grammar |
| Syntax-Directed Translation | SDT ⭐ SDD ⭐ |
| Intermediate Code Generation | Three-address code ⭐ Quadruples ⭐ |
| Type Checking | Static vs Dynamic ⭐ |
| Run-Time Environment | Activation record ⭐ Storage allocation ⭐ |
| Code Optimization | Local optimization ⭐ Loop optimization ⭐ |
| Code Generation | Target code ⭐ Register allocation ⭐ |
| Error Handling | Lexical errors ⭐ Syntax errors ⭐ |
| Compiler Tools | Lex Yacc |
| Bootstrapping | Compiler bootstrapping |
| Cross Compiler | Cross compilation |