A variable x is said to be live at a statement Si in a program if the following three conditions hold simultaneously:
1. There exists a statement Sj that uses x 2. There is a path from Si to Sj in the flow graph corresponding to the program 3. The path has no intervening assignment to x including at Si and Sj
The variables which are live both at the statement in basic block 2 and at the statement in basic block 3 of the above control flow graph are
(A) p, s, u
(B) r, s, u
(C) r, u
(D) q, v
Answer: (C)
Explanation: Live variable analysis is useful in compilers to find variables in each program that may be needed in future.
As per the definition given in question, a variable is live if it holds a value that may be needed in the future. In other words, it is used in future before any new assignment.