 Open in App
Not now

# GATE | GATE-CS-2017 (Set 1) | Question 53

• Last Updated : 16 Sep, 2021

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

(A) 20
(B) 1024
(C) 2048
(D) 10

Explanation: Number of control flow paths for 10 if terminals

1. if then else ; stmt
2. if then else ; if then else ; stmt
3. …………..

10 times.

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.