GATE | GATE-CS-2017 (Set 1) | Question 53
Consider the following grammar:
stmt -> if expr then else expr; stmt | ε expr -> term relop term | term term -> id | number id -> a | b | c number -> [0-9]
where relop is a relational operate (e.g < >, ….), ε refers to the empty statement, and if
,then, else are terminals.
Consider a program P following the above grammar containing ten if terminals. The number
of control flows paths in P is ____________.
For example, the program
if e1 then e2 else e3
has 2 control flow paths, e1 -> e2 and e1 -> e3
Explanation: Number of control flow paths for 10 if terminals
then else ; stmt
then else ; if then else ; stmt
Observe that there is a semi-colon after every if structure.
Since, every if structure has 2 control flows.
Therefore, 1st terminal has 2 control flows,
2nd terminal has 2 control flows,
3rd terminal has 2 control flows,
9th terminal has 2 control flows,
and 10th terminal has 2 control flows.
Using multiplication law of counting, we get
= 2*2*2*2*2……10 times = 2^10 = 1024 number of control flow paths for 10 if terminals.
1024 is correct answer.