Open In App

GATE | GATE CS 2012 | Question 65

Like Article
Like
Save
Share
Report

Consider the date same as above question. The appropriate entries for E1, E2, and E3 are 

 


(A)

A

(B)

B

(C)

C

(D)

D



Answer: (C)

Explanation:

As we need to find entries E1, E2 and E3 which are against Non terminals S and B, so we will deal with only those productions which have S and B on LHS. Here representing the parsing table as M[ X , Y ], where X represents rows( Non terminals) and Y represents columns(terminals).

Rule 1: if P --> Q is a production, for each terminal
        \'t\' in FIRST(Q) add P-->Q to M [ P , t ]

Rule 2 : if epsilon is in FIRST(Q), add P --> Q to
         M [ P , f ] for each f in FOLLOW(P). 

For the production rule S–> aAbB, it will be added to parsing table at the position M[ S , FIRST( aAbB ) ], Now FIRST(aAbB) = {a}, hence add S–> aAbB to M[ S , a ] which is E1. For the production rule S–> bAaB, it will be added to parsing table at the position M[ S , FIRST( bAaB ) ], Now FIRST(bAaB) = {b}, hence add S–> bAaB to M[ S , b ] which is E2 For the production rule S–> epsilon , it will be added to parsing table at the position M[ S , FOLLOW(S) ], Now FOLLOW(S) = { a , b , $ }, hence add S –> epsilon to M[ S , a ] and M[ S , b ] which are again E1 and E2 respectively. For the production rule B –> S, it will be added to parsing table at the position M[ B , FIRST( S ) ], Now FIRST(S) also contains epsilon, hence add B –> S to M[ S , FOLLOW(B) ], and FOLLOW(B) contains {$}, i.e. M[ S , $ ] which is E3. epsilon corresponds to empty string. 


Quiz of this Question
Please comment below if you find anything wrong in the above post


Last Updated : 14 Sep, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads