The Gateway to Computer Science Excellence
+39 votes
8.3k views

Consider the basic block given below. 

a = b + c 
c = a + d 
d = b + c 
e = d - b 
a = e + b 

The minimum number of nodes and edges present in the DAG representation of the above basic block respectively are

  1. $6$ and $6$
  2. $8$ and $10$
  3. $9$ and $12$
  4. $4$ and $4$
in Compiler Design by Veteran (105k points)
edited by | 8.3k views
0
Notice - No node no node for '=' operator
+15

...............................

0
THIS IS IN SYLLABUS?
0
Yeah it is in syllabus. Question can be asked from anywhere if it is even a little bit in syllabus. So leave recent out of syllabus topics carefully.

5 Answers

+51 votes
Best answer

A normal DAG construction will give $8$ nodes and $10$ edges as shown below.

Since, this question asks for minimum possible, we can assume algebraic simplification is allowed. So, $d = b + c, e = d - b$; can be simplified to $d = b + c$; $e = c$; Similarly, $e = d - b$; $a = e + b$; can be simplified to $a = d$. This gives the following DAG with $6$ nodes and $6$ edges.

https://cs.nyu.edu/~gottlieb/courses/2000s/2006-07-fall/compilers/lectures/lecture-14.html [working link]

Correct Answer: $A$

by Veteran (425k points)
edited by
+1
Why is definition d added to node a? In 3rd statement c is getting redefined and hence the new value of c would be used for defining d. Hence a new node for d is created. What am I missing, Arjun Sir?
0
Sorry. It was a mistake. I have corrected it now.
+2
sir. the lnk is dead i need to study DAG . plz provide a gud link .
0
thanx arjun sir
0
@Arjun Sir, The link here is not working,have any alternative?
+2
Is DAG in syllabus?  but can questions of this type be expected anyone reply.... Isn't DAG used for optimisation?
0
is this in syllabus???
0
yes. it's in syllabus.
0
@Arjun Sir

In 2nd Figure am unable to find edge of  e = d-b; except this am understand ...I think 7 edges will be there?plzz look if you have time?
0
but code optimization is not, then how is it in syllabus? :(
0
what sort of question can we expect with dag because it involves code optimization techniques which are nt in syllabus?
0
@sushmita

I think it is intermediate code and DAG combination question and both of them are in syllabus..
+3
can we do it like this-

a=b+c

c=a+d

d=b+c

e=d-b

a=e+b

Now d is common subexpression so we need not compute it again-

Hence it will become-

a=b+c

c=a+d

e=a-b

a=e+b=a-b+b=a -----> redundant

Finally it becomes-

a=b+c

c=a+d

e=a-b

It will also require 6 nodes and 6 edges.
+52

isn't it right?

0
It is also correct!!!
+11

...........

0
Where is the assingment operator?
0
Had minimum not been asked, would be then go with 8 and 10 option?
0
@prayas

It is not required  because in DAG x:=y type of assignments need not to be performed (not required) untill and unless it is used for computation of further expression.
+2 votes

Simplifying the given equations : 
 
d = b + c (given) e = d – b (given) => d = b + c and e = c 
 
e = d - b (given) a = e + b (given) => a = d 
 
2014-set3-44 
 
Thus, the given DAG has 6 nodes and 6 edges. 

by Loyal (9.7k points)
+1 vote

Best approach of doing this question is "Go in reverse order". and it has asked for minimum so we can simplify wherever possible.

A = (E+B)

((D-B)+B) = (D) Because both + , - has same precedence

(B+C)

(B+(A+D))

(B+((B+C)+D))

 

by Active (3.5k points)
–3 votes
option B
by Active (2.6k points)
–4 votes
answer - B
by Loyal (8.6k points)

Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
50,644 questions
56,503 answers
195,553 comments
101,039 users