While studying, I came across the following statements:

A join point is a program point where two branches meet.

Available expressions is a forward, must problem.

Forward = Data Flow from in to out.

Must = At joint point, property must hold on all paths that are joined.

I get what joint point, available expression and forward is. But I am getting what exactly is meant by MUST.

Someone please explain what MUST is with example.

Edit: Could you please relate your statement with the following example.

Available Expressions


1 Answer 1


I typically think of must as meaning logical and.

In the case of available expressions, when you reach a join point, the expression in question is available at the join point if and only if the expression is available on all of the input edges to the join point. That is: if the expression is available on the first input edge, and it is available on the second input edge, and it is available on the third input edge, etc.

There are other properties, such as "could be a null pointer" which are may properties instead of must properties. May I think of as meaning logical or.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.