Exam
CDC — Topic-wise Frequency Analysis & Priority List
Based on 7 old question sets (2081 (new) had no questions available, so excluded from counting). Unit references link to Syllabus.
Tier 1 — Most Important (appear in almost every set)
| Topic | Unit / Syllabus Topic | Appeared In | Count | Typical Ask |
|---|---|---|---|---|
| Regex → NFA → DFA (Thompson's + subset construction) & DFA minimization | Unit 2 – 2.4 Lexical Analysis | 2075, 2076, 2078, 2080, 2081, Model_I | 6/7 | Convert given RE to DFA; minimize DFA |
| Parsing table construction (LL(1) / SLR / LR(1)) | Unit 2 – 2.5 Syntax Analysis | 2075, 2076, 2078, 2080, 2081, Model_I, Model_II | 7/7 | Construct table + test/parse a string |
| Three Address Code, Quadruples & Triples | Unit 4 – 4.1 Intermediate Code Generator | 2075, 2076, 2078, 2080, 2081, Model_I | 6/7 | Convert given code/expression to TAC/quadruples/triples |
| Code Optimization techniques (loop opt, constant folding, dead-code, peephole, strength reduction) | Unit 4 – 4.3 Code Optimization | 2075, 2076, 2078, 2080, 2081, Model_I, Model_II | 7/7 | Explain + apply on given code |
| FIRST and FOLLOW computation | Unit 2 – 2.5 Syntax Analysis (Top-down parsing) | 2075, 2080, 2081, Model_I | 4/7 (heavily weighted) | Compute FIRST/FOLLOW of non-terminals |
| Type Checking (static/dynamic, SDD-based) | Unit 2 – 2.7 Type Checking | 2075, 2076, 2078, 2080, Model_II | 5/7 | SDD for type checking / static vs dynamic |
| SDD / Annotated Parse Tree / Syntax-directed translation | Unit 2 – 2.6 Syntax Directed Translation | 2075, 2076, 2080, 2081, Model_II | 5/7 | Construct annotated parse tree for given SDD |
| Activation Record / Activation Tree | Unit 3 – 3.2 Runtime Storage Management | 2075, 2078, 2080, 2081, Model_II | 5/7 | Draw structure / explain caller-callee activities |
| Symbol Table (functions, entries, data structures) | Unit 3 – 3.1 Symbol Table Design | 2075, 2078, 2080, 2081, Model_II | 5/7 | List entries; compare data structures |
| Factors affecting Code Generator / Target Code Generation | Unit 4 – 4.2 Code Generator | 2075, 2076, 2078, 2080, 2081 | 5/7 | Discuss factors / design issues |
Tier 2 — Important (moderate repetition, 2–4 sets)
| Topic | Unit / Syllabus Topic | Appeared In | Count | Typical Ask |
|---|---|---|---|---|
| Compiler phases / block diagram / Compiler vs Interpreter | Unit 1 – 1.1/1.2 Compiler Structure | 2075, 2076, 2078, 2081, Model_II | 5/7 | Explain phases with diagram |
| Backpatching | Unit 4 – 4.1 SDT for Intermediate Code | 2081, Model_I (×2) | 3/7 | Backpatching for boolean expr / while-if code |
| Synthesized vs Inherited Attributes | Unit 2 – 2.6 Syntax Directed Translation | 2078, 2080, 2081, Model_II | 4/7 | Differentiate with example |
| LR(1) Items / Closure / GOTO / Core items | Unit 2 – 2.5 Syntax Analysis (LR parsing) | 2078, 2081, Model_II (×2) | 4/7 | Compute closure/GOTO steps |
| Shift-Reduce Parsing | Unit 2 – 2.5 Syntax Analysis (Bottom-up parsing) | 2076, 2078 | 2/7 | Show shift-reduce actions for a string |
| Recursive Descent Parsing | Unit 2 – 2.5 Syntax Analysis (Top-down parsing) | 2075, Model_I | 2/7 | Differentiate / write parser & trace |
| LL(1) Parsing Table & Properties | Unit 2 – 2.5 Syntax Analysis (Top-down parsing) | 2080, Model_I (×2) | 3/7 | Construct table, check LL(1) validity |
| Error Handling in Compiler | Unit 1 – 1.2 Error Handler | 2076, Model_I | 2/7 | Role/importance across phases |
| Intermediate Code representation methods | Unit 4 – 4.1 Intermediate Code Generator | 2076, 2081 | 2/7 | Different IR methods with example |
Tier 3 — If Time Remains (appeared once, but still asked)
| Topic | Unit / Syllabus Topic | Appeared In | Typical Ask | |
|---|---|---|---|---|
| Left Recursion removal | Unit 2 – 2.5 Syntax Analysis (Writing grammars) | 2078 | Remove left recursion from grammar | |
| DAG vs Syntax Tree | Unit 4 – 4.1 Syntax tree & DAG representations | 2081 | Differentiate + represent expression | |
| Macro vs Procedure / Macro Expansion | Unit 1 – 1.2 Macros | Model_II | Expand nested macros | |
| Register Allocation (Graph Coloring) | Unit 4 – 4.2 Code Generator | Model_I | Interference graph + assign registers | |
| Basic Blocks & Flow Graph / Loop-invariant code | Unit 4 – 4.2 Basic blocks and flow graphs | 2080, Model_II | Identify basic blocks, flow graph | |
| Operator-Precedence Parsing | Unit 2 – 2.5 Operator-preceding parsing | Model_II | Build precedence table, parse string | |
| Ambiguous Grammar / Dangling-Else problem | Unit 2 – 2.5 Ambiguous grammar | Model_I | Explain + resolve | |
| Parameter Passing Mechanisms | Unit 3 – 3.2 Runtime Storage Management | Model_I | Call by value/reference/name | |
| Reduce-Reduce Conflict example | Unit 2 – 2.5 LR parsing | 2081 | Give example + SLR table | |
| Runtime Storage Management techniques | Unit 3 – 3.2 Runtime Storage Management | 2078 | List types | |
| Hash-table symbol table implementation | Unit 3 – 3.1 Symbol Table Design | Model_II | Build hash table with chaining |
Study Priority Summary
- Master first: Parsing (Unit 2 – Syntax Analysis — LL(1)/SLR/LR(1) table construction + parsing a string), NFA/DFA conversion & minimization (Unit 2 – Lexical Analysis), TAC/Quadruples/Triples & Code Optimization (Unit 4), FIRST/FOLLOW (Unit 2) — these alone cover the majority of marks across every single year.
- Then cover: SDD/annotated parse trees & type checking (Unit 2 – 2.6/2.7), symbol table & activation records (Unit 3), factors affecting code generation (Unit 4 – 4.2), compiler phases (Unit 1).
- Last, if time remains: Backpatching details, attributes (synthesized/inherited), macros, register allocation, flow graphs, operator-precedence parsing, and short-note style topics (error recovery, parameter passing) — mostly Unit 1, Unit 3, and scattered Unit 4 sub-topics.
Note: Numerical/construction-based questions (DFA, parsing tables, TAC, FIRST/FOLLOW) dominate every paper — practicing these with different grammars is higher-value than memorizing definitions alone.
Related: Syllabus · 2075 · 2076 · 2078 · 2080 · 2081 · Model_I · Model_II