retagged by
2,614 views
19 votes
19 votes

Consider the parse tree

Assume that $*$ has higher precedence than $+$, $-$ and operators associate right to left (i.e $(a + b + c= (a + (b + c)))$. Consider

  1. $2 + a - b$
  2. $2 + a - b * a + b$
  3. $(2 + ((a - b) * (a + b)))$
  4. $2 + (a - b) * (a + b)$

The parse tree corresponds to

  1. Expression (i)
  2. Expression (ii)
  3. Expression (iv) only
  4. Expression (ii), (iii), and (iv)
  5. Expression (iii) and (iv) only
retagged by

2 Answers

Best answer
15 votes
15 votes

e is correct

Because as the precedence is right to left, expression evaluated in (ii) is $2+(a-((b*a)+b)),$ which is not a correct evaluation as the given parse tree.

edited by
6 votes
6 votes
Although given answer is correct one can approach in another way if one wants more visualization to this problem

Write the "postfix" expression of given parse tree keeping in mind precedences order & associativity as per question we will get      { 2ab-ab+*+ }

Now write the postfix expressions of options 3 & 4 you will see same and for option 2 you will get different

 

(E) correct answer
Answer:

Related questions

0 votes
0 votes
1 answer
2