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

  1. 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.
  2. 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).
  3. 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