We gently introduce some of the key ideas of program analysis
by treating the Reaching Definitions analysis in some detail.
An analysis is formulated by generating a list of constraints, and
applying an automated procedure to obtain the best solution
for these constraints. We consider a number of questions:
How we can be sure that the analysis terminates?
Does it give a correct answer (and what is 'correct')?
Is the answer always the best one possible?
This talk can be viewed as a primer for the course
Automatic Program Analysis that takes place in Period 4.