GATE 2017 CS – Question 53
Consider the following grammar:
stmt -> if expr then expr else expr; stmt | ò
expr -> term relop term | term
term -> id | number
id -> a | b | c
number -> [0-9]where `relop` is a relational operator (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 flow paths in $P$ is ________. For example, the program
if e1 then e2 else e3has 2 control flow paths, $e_1 \rightarrow e_2$ and $e_1 \rightarrow e_3$.
Practise this question in The GATE Grind →
Show answer and explanation
Correct answer: 1024
Explanation
The statements follow one another in sequence. Each `if ... then ... else` statement gives 2 choices of path, and the choices are independent. With ten of them in sequence the number of paths is $2^{10} = 1024$.