Skip to content
Related Articles

Related Articles

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

Improve Article
Save Article
  • Last Updated : 16 Sep, 2021
Improve Article
Save Article

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


Answer: (B)

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.

1024 is correct answer.



Quiz of this Question

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!