GATE CSE
First time here? Checkout the FAQ!
x
0 votes
174 views

Consider the following translation scheme. 

S→ER

R→∗E{print(′∗′);}R∣ε

E→F+E{print(′+′);}∣F

F→S∣id{print(id.value);}

Here id is a token that represents an integer and id.value represents the corresponding integer value. For an input '2 * 3 + 4',  this translation scheme prints 

(A) 2 * 3 + 4  
(B) 2 * +3 4  
(C) 2 3 * 4 + 
(D) 2 3 4+*

My try: I figured out the following tree and found the answer to be (C) i.e. 23*4+. But the given answer in (D). 
Am I missing something?

asked in Compiler Design by Active (1.6k points)   | 174 views

i think D. is ans since + having higher precedency over * ...In ur tree * having higher precedence than + ...

The precedence is enforced by grammar, so if I am able to draw the tree using the grammar shouldn't that be correct?
My understanding is that if + has higher precedence than * then using that using no tree should give higher precedence to *. Is that wrong to assume?
Yes we should not assume that

2 Answers

0 votes
answered by Loyal (4.6k points)  
0 votes
Yes , Answer is D
answered by Junior (713 points)  


Top Users May 2017
  1. akash.dinkar12

    3302 Points

  2. pawan kumarln

    1776 Points

  3. Bikram

    1646 Points

  4. sh!va

    1640 Points

  5. Arjun

    1396 Points

  6. Devshree Dubey

    1272 Points

  7. Debashish Deka

    1142 Points

  8. Angkit

    1044 Points

  9. LeenSharma

    1000 Points

  10. Arunav Khare

    754 Points

Monthly Topper: Rs. 500 gift card
Top Users 2017 May 22 - 28
  1. Bikram

    732 Points

  2. Arnab Bhadra

    402 Points

  3. pawan kumarln

    402 Points

  4. bharti

    304 Points

  5. LeenSharma

    238 Points


22,823 questions
29,142 answers
65,209 comments
27,666 users